PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) 给出编译错误
Posted
技术标签:
【中文标题】PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) 给出编译错误【英文标题】:PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) giving compilation error 【发布时间】:2015-04-19 08:30:44 【问题描述】:我正在尝试将 facebook 登录集成到我的解析应用程序中。我遵循了解析教程中提到的每一步。在下面的代码中,我得到了编译错误。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
// Override point for customization after application launch.
line1: Parse.setApplicationId("xxx", clientKey: "yyy")
line2: PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
line3: PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
line4: return true
在 第 3 行,我收到错误:
可选类型“
[NSObject:AnyObject]
”的值未解包;你是否 是指使用“!
”还是“?
”?
如果我使用“!
”手动解包,因为 launchOptions 可以为零,我得到:
致命错误:在展开可选值时意外发现 nil
如果我检查为零,我得到:
NSInternalInconsistencyException
',原因:'你必须初始化 PFFacebookUtils 调用+initializeFacebookWithApplicationLaunchOptions
知道怎么解决吗?
【问题讨论】:
【参考方案1】:这是 ParseSDK 中的一个错误。在 Parse 修复此问题之前,您可以更改 PFFacebookUtils.h 头文件中的初始化函数声明
1) 转到 PFFacebookUtils.h
2) 改变:
(void)initializeFacebookWithApplicationLaunchOptions:(NSDictionary *)launchOptions;收件人:
(void)initializeFacebookWithApplicationLaunchOptions:(PF_NULLABLE NSDictionary *)launchOptions;此答案由 Kiarash Akhlaghi 提供,https://developers.facebook.com/bugs/1462780714012820/
【讨论】:
感谢您的回答。【参考方案2】:问题是 ParseSDK 的一个错误,它不接受 nil launchOptions
根据 Roger Ingouacka 在 https://developers.facebook.com/bugs/1462780714012820/
if let launchOptions = launchOptions
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
else
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions([NSObject:AnyObject]())
注意使用
[NSObject:AnyObject]()
【讨论】:
【参考方案3】:这个问题一直存在,直到我更新到 Parse 库 1.8.1。
我尝试调整 PFFacebookUtils.h 和许多其他的东西,但这并没有解决它。这让我发疯了。
【讨论】:
以上是关于PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) 给出编译错误的主要内容,如果未能解决你的问题,请参考以下文章