122

Xcode 9 を使用している場合、いくつかのコンパイラ警告が表示されますThis function declaration is not a prototypevoidメソッド本体に追加することをお勧めします。これにより解決されます。私が抱えている問題は、UIApplicationデリゲート メソッドのようなシステム API に対してもこれらの警告がスローされることです。

- (void)application:(UIApplication *)application
    handleActionWithIdentifier:(NSString *)identifier
         forRemoteNotification:(NSDictionary *)userInfo
              withResponseInfo:(NSDictionary *)responseInfo
             completionHandler:(void (^)())completionHandler

これは、次の方法で解決できます。

- (void)application:(UIApplication *)application
    handleActionWithIdentifier:(NSString *)identifier
         forRemoteNotification:(NSDictionary *)userInfo
              withResponseInfo:(NSDictionary *)responseInfo
             completionHandler:(void (^)(void))completionHandler

デリゲート メソッドが長期的に機能するのか、それとも Apple がvoid後の iOS 11 ベータ バージョンに挿入するのか疑問に思っています。本体を含めると、Xcode がメソッドセレクターの不一致について文句を言うので、私は興味がvoidあります (これは理にかなっています)。これまでに誰かが同じ問題を経験しましたか?

4

1 に答える 1