Подтвердить что ты не робот

Несовместимые типы указателей, отправляющие 'Class' в параметр типа 'id <UIActionSheetDelegate>'

Я получаю предупреждение Несовместимые типы указателей, отправляющие "Класс" в параметр типа "id" в строке "delegate: self" ниже:

    + (SHKActionSheet *)actionSheetForType:(SHKShareType)type
{
    SHKActionSheet *as = [[SHKActionSheet alloc] initWithTitle:SHKLocalizedString(@"Share")
                                                      delegate:self
                                             cancelButtonTitle:nil
                                        destructiveButtonTitle:nil
                                             otherButtonTitles:nil];
    as.item = [[[SHKItem alloc] init] autorelease];
    as.item.shareType = type;

Это предупреждение находится в ShareKit, если кто знает, как его исправить, сообщите мне!

4b9b3361

Ответ 1

Вы пытаетесь передать параметр self в статическом методе. Это неправильно, поскольку в статических методах нет конкретного экземпляра этого объекта. Сделайте это либо не статическим методом, либо передайте некоторый экземпляр этого класса в качестве делегата.

Ответ 2

При работе со статическим классом вы можете вручную получить предупреждение:

delegate:(id<UIActionSheetDelegate>)self

Ответ 3

Попробуйте использовать nil вместо self (xcode 4.2 iOS 5).