SDKApplicationDelegate 使用未解析的标识符
Posted
技术标签:
【中文标题】SDKApplicationDelegate 使用未解析的标识符【英文标题】:SDKApplicationDelegate Use of unresolved identifier 【发布时间】:2019-05-15 08:52:13 【问题描述】:我为 Facebook 登录安装了两个 pod
pod 'FacebookCore'
pod 'FacebookLogin'
比在 appdelegate 中导入 FacebookCore。仍然显示使用未解决的标识符错误。
我也在 info.plist 中实现了标签
<array>
<string>fb---------</string>
</array>
<key>FacebookAppID</key>
<string>-----------</string>
<key>FacebookDisplayName</key>
<string>-----------</string>
仍然无法获取 SDKApplicationDelegate。
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool
if SDKApplicationDelegate.shared.application(app, open: url, options: options)
return true
return false
【问题讨论】:
代替答案,你的问题解决了我的问题,谢谢:) 【参考方案1】:因为SDKApplicationDelegate
改成了ApplicationDelegate
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool
if ApplicationDelegate.shared.application(app, open: url, options: options)
return true
return false
还有一件事要做
class AppDelegate: UIResponder, UIApplicationDelegate
同时导入这两个 pod
import FBSDKCoreKit
import FBSDKLoginKit
【讨论】:
我得到的错误是......使用未解析的标识符'ApplicationDelegate';你的意思是“UIApplicationDelegate”吗?将“ApplicationDelegate”替换为“UIApplicationDelegate” 这个返回语句对所有应用切换都有效吗?我有谷歌,linkedIn,脸书。所以这仅适用于 facebook 或所有这些? @KrutikaSonawala....是的,请看这个***.com/questions/35510410/… 感谢您的帮助。不知道为什么 facebook 没有快速入门指南【参考方案2】:详情
Xcode 版本 10.3 (10G8) 斯威夫特 5 FacebookCore (0.7.0)解决方案
只需将SDKApplicationDelegate
替换为ApplicationDelegate
代码
import FacebookCore
//....
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
//....
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool
guard let urlScheme = url.scheme else return false
if urlScheme.hasPrefix("fb")
return ApplicationDelegate.shared.application(app, open: url, options: options)
return true
【讨论】:
截至 2019 年 7 月,此功能与 swift 5 一致。谢谢!【参考方案3】:为了能够让facebook登录添加这两种方法
func application(_ app: UIApplication,open url: URL,options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
if #available(ios 9.0, *)
let sourceApplication: String? = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url,sourceApplication: sourceApplication, annotation: nil)
return true
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL?, sourceApplication: sourceApplication, annotation: annotation)
import FBSDKCoreKit
import FBSDKLoginKit
【讨论】:
这个错误是:使用未解析的标识符'FBSDKApplicationDelegate';你的意思是“UIApplicationDelegate”吗?将“FBSDKApplicationDelegate”替换为“UIApplicationDelegate” 导入将转换与上述答案相同的代码。所以这行得通。以上是关于SDKApplicationDelegate 使用未解析的标识符的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?