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) 给出编译错误的主要内容,如果未能解决你的问题,请参考以下文章