Несовместимые типы указателей, отправляющие '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, если кто знает, как его исправить, сообщите мне!
Ответы
Ответ 1
Вы пытаетесь передать параметр self в статическом методе. Это неправильно, поскольку в статических методах нет конкретного экземпляра этого объекта. Сделайте это либо не статическим методом, либо передайте некоторый экземпляр этого класса в качестве делегата.
Ответ 2
При работе со статическим классом вы можете вручную получить предупреждение:
delegate:(id<UIActionSheetDelegate>)self
Ответ 3
Попробуйте использовать nil вместо self (xcode 4.2 iOS 5).