13

以下の「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にあります。誰かがそれを修正する方法を知っているなら、私に知らせてください!

4

3 に答える 3

21

静的メソッドで self パラメータを渡そうとしています。静的メソッドにはこのオブジェクトの特定のインスタンスがないため、正しくありません。非静的メソッドにするか、このクラスのインスタンスをデリゲートとして渡します。

于 2011-08-09T02:29:21.313 に答える
9

静的クラスを操作する場合、手動で警告を回避できます。

delegate:(id<UIActionSheetDelegate>)self
于 2013-08-19T14:06:54.537 に答える
3

self の代わりに nil を使用してみてください (xcode 4.2 iOS 5)。

于 2011-11-03T19:03:49.630 に答える