2

解析アプリケーションに Facebook ログインを統合しようとしています。parse チュートリアルに記載されているすべての手順に従いました。以下のコードでは、コンパイル エラーが発生します。

 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 になる可能性があるため、次のようになります。

致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました

nil をチェックすると、次のようになります。

NSInternalInconsistencyException'、理由: ' への呼び出しで PFFacebookUtils を初期化する必要があります +initializeFacebookWithApplicationLaunchOptions

それを修正する方法はありますか?

4

3 に答える 3

2

問題は ParseSDK のバグで、nil launchOptionsを受け入れません

https://developers.facebook.com/bugs/1462780714012820/で Roger Ingouacka によって提供された回答によると

    if let launchOptions = launchOptions {
        PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
    } else {
        PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions([NSObject:AnyObject]())
    }

の使用に注意してください

[NSObject:AnyObject]()

于 2015-04-23T23:38:32.100 に答える