Bei Verwendung von Xcode 9 werden einige Compiler-Warnungen angezeigt This function declaration is not a prototype
. Es wird vorgeschlagen void
, den Methodenkörper zu erweitern, um ihn aufzulösen. Das Problem, das ich habe, ist, dass diese Warnungen auch für System-APIs wie UIApplication
Delegate-Methoden ausgegeben werden:
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
withResponseInfo:(NSDictionary *)responseInfo
completionHandler:(void (^)())completionHandler
Dies könnte durch Folgendes gelöst werden:
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)userInfo
withResponseInfo:(NSDictionary *)responseInfo
completionHandler:(void (^)(void))completionHandler
Jetzt frage ich mich, ob die Delegate-Methoden langfristig noch funktionieren oder Apple die void
in späteren iOS 11 Beta-Versionen einfügt. Ich bin neugierig, denn wenn ich den void
Körper einbeziehe, beschwert sich Xcode über nicht übereinstimmende Methodenselektoren (was Sinn macht). Hat jemand das gleiche Problem bisher erlebt?
quelle
void (^)()
orvoid (*)()
void(^)()
) akzeptiert, fügen Sie dies explizitvoid
in die Klammern ein :void(^)(void)
.