Під час використання 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 поскаржиться на невідповідність селекторів методів (що має сенс). Хтось відчував те саме питання досі?