不兼容的指针类型将'Class'发送到'id <uiactionsheetdelegate>'类型的参数</uiactionsheetdelegate>

时间:2011-08-09 02:26:18

标签: ios warnings incompatibility

我收到警告不兼容的指针类型将'Class'发送到“delegate:self”行中的'id'类型的参数:

    + (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中,如果有人知道如何修复它,请告诉我!

3 个答案:

答案 0 :(得分:21)

您正尝试在静态方法中传递self参数。这是不正确的,因为静态方法中没有此对象的特定实例。使其成为非静态方法或将此类的一些实例作为委托传递。

答案 1 :(得分:8)

使用静态类时,您可以手动获取警告:

delegate:(id<UIActionSheetDelegate>)self

答案 2 :(得分:4)

尝试使用nil而不是self(xcode 4.2 iOS 5)。