更改为私人或@nonobjc
change to private or @nonobjc
我正在编写一个创建社交媒体类型应用程序的教程。我正在使用 Firebase 并且已经实现了那里指南中需要的所有东西,除了下面的这段代码外,一切正常。
说有错误并要求修复,但将其设为私有或添加@nonobjc。
这是我的代码:
func application(_ application: UIApplication, open url: URL, sourceApplication: String, annotation: AnyObject?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL!, sourceApplication: sourceApplication, annotation: annotation)
}
Firebase 网站上有一个代码版本,但它在 Objective C:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
return handled;
}
希望这对您有所帮助并且有意义。
一般来说,关于应用程序委托方法需要更改为 private
或 @nonobjc
的警告表明应用程序委托方法签名不正确。考虑:
func application(_ application: UIApplication, open url: URL, sourceApplication: String, annotation: AnyObject?) -> Bool {
...
}
已替换为:
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
...
}
而且,根据 UIApplicationDelegate
协议定义,从 iOS 9 开始,这已被标记为已弃用,取而代之的是:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
...
}
最后一个演绎版与您与我们分享的 Objective-C 代码示例最接近。
我正在编写一个创建社交媒体类型应用程序的教程。我正在使用 Firebase 并且已经实现了那里指南中需要的所有东西,除了下面的这段代码外,一切正常。
说有错误并要求修复,但将其设为私有或添加@nonobjc。
这是我的代码:
func application(_ application: UIApplication, open url: URL, sourceApplication: String, annotation: AnyObject?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL!, sourceApplication: sourceApplication, annotation: annotation)
}
Firebase 网站上有一个代码版本,但它在 Objective C:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
return handled;
}
希望这对您有所帮助并且有意义。
一般来说,关于应用程序委托方法需要更改为 private
或 @nonobjc
的警告表明应用程序委托方法签名不正确。考虑:
func application(_ application: UIApplication, open url: URL, sourceApplication: String, annotation: AnyObject?) -> Bool {
...
}
已替换为:
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
...
}
而且,根据 UIApplicationDelegate
协议定义,从 iOS 9 开始,这已被标记为已弃用,取而代之的是:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
...
}
最后一个演绎版与您与我们分享的 Objective-C 代码示例最接近。