Podczas korzystania z Xcode 9 pojawiają się ostrzeżenia kompilatora This function declaration is not a prototype. Sugeruje dodanie voiddo treści metody, która rozwiąże problem. Problem, który mam, polega na tym, że te ostrzeżenia są również generowane dla UIApplicationmetod interfejsu API systemu, takich jak metody delegatów:
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
withResponseInfo:(NSDictionary *)responseInfo
completionHandler:(void (^)())completionHandler
Można to rozwiązać w następujący sposób:
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
withResponseInfo:(NSDictionary *)responseInfo
completionHandler:(void (^)(void))completionHandler
Teraz zastanawiam się, czy metody delegowania będą nadal działać na dłuższą metę, czy Apple wstawi voidw późniejszych wersjach iOS 11 Beta. Jestem ciekawy, ponieważ jeśli voiddołączę body, Xcode będzie narzekał na niedopasowanie selektorów metod (co ma sens). Czy ktoś do tej pory miał ten sam problem?
