最佳答案
当使用 Xcode 9时,有一些编译器警告说 This function declaration is not a prototype
。它建议将 void
添加到方法体中,这将解析它。我遇到的问题是,这些警告也会抛出到 system-API 类似于 UIApplication
委托-方法中:
- (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
现在我想知道委托方法是否仍然可以长期使用,或者苹果将在 iOS11Beta 版本中插入 void
。我很好奇,因为如果我包含 void
主体,Xcode 会抱怨方法选择器不匹配(这是有意义的)。到目前为止有人遇到过同样的问题吗?