Lorsque vous utilisez Xcode 9, il y a des avertissements du compilateur qui disent que This function declaration is not a prototype
. Il suggère d'ajouter void
au corps de la méthode, qui le résoudra. Le problème que je rencontre est que ces avertissements sont également émis pour les API système telles que UIApplication
les méthodes de délégation :
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
withResponseInfo:(NSDictionary *)responseInfo
completionHandler:(void (^)())completionHandler
Ce problème pourrait être résolu de la manière suivante :
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
withResponseInfo:(NSDictionary *)responseInfo
completionHandler:(void (^)(void))completionHandler
Je me demande maintenant si les méthodes de délégation fonctionneront toujours sur le long terme ou si Apple insérera la méthode de la void
dans les versions bêta ultérieures d'iOS 11. Je suis curieux car si j'inclus le void
Xcode se plaindra que les sélecteurs de méthodes ne correspondent pas (ce qui est logique). Quelqu'un a-t-il rencontré le même problème jusqu'à présent ?