PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)给出编译错误

时间:2015-04-19 08:30:45

标签: parse-platform parsefacebookutils

我正在尝试将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

知道怎么解决吗?

3 个答案:

答案 0 :(得分:6)

这是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/

提供

答案 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以及其他很多东西,但这并没有解决它。这让我疯了。