我正在尝试将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
知道怎么解决吗?
答案 0 :(得分:6)
这是ParseSDK中的一个错误。在Parse修复此问题之前,您可以在PFFacebookUtils.h头文件中更改初始化函数声明
1)转到PFFacebookUtils.h
2)改变:
要:
这个答案由Kiarash Akhlaghi在https://developers.facebook.com/bugs/1462780714012820/
提供答案 1 :(得分: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]()
答案 2 :(得分:0)
此问题一直存在,直到更新为Parse library 1.8.1 。
我尝试过调整PFFacebookUtils.h以及其他很多东西,但这并没有解决它。这让我疯了。