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

PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) giving compilation error

我正在尝试将 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 行 中,出现错误:

Value of optional type '[NSObject:AnyObject]' not unwrapped; did you mean to use '!' or '?'?

如果我使用“!”手动解包,因为 launchOptions 可以为 nil,我得到:

Fatal error: unexpectedly found nil while unwrapping an Optional value

如果我检查 nil,我得到:

NSInternalInconsistencyException', reason: 'You must initialize PFFacebookUtils with a call to +initializeFacebookWithApplicationLaunchOptions

知道如何解决吗?

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

提供

问题是 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]()

这个问题一直存在,直到我更新到 Parse 库 1.8.1

我试过调整PFFacebookUtils.h,还有很多其他的东西,但并没有解决问题。这让我发疯。