При использовании 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. Мне любопытно, потому что, если я включу voidтело, Xcode будет жаловаться на несоответствие селекторов методов (что имеет смысл). У кого-нибудь возникла такая же проблема?
