Xcode 9 を使用している場合、いくつかのコンパイラ警告が表示されますThis function declaration is not a prototype
。void
メソッド本体に追加することをお勧めします。これにより解決されます。私が抱えている問題は、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
あります (これは理にかなっています)。これまでに誰かが同じ問題を経験しましたか?