使用 Xcode 9 时,有一些编译器警告说This function declaration is not a prototype
. 它建议添加void
到方法体中,这将解决它。我遇到的问题是,这些警告也会针对系统 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
现在我想知道委托方法是否仍然可以长期工作,或者 Apple 会void
在以后的 iOS 11 Beta 版本中插入。我很好奇,因为如果我包含void
正文,Xcode 会抱怨方法选择器不匹配(这是有道理的)。到目前为止,有人遇到过同样的问题吗?