2016-10-05 6 views
1

私はソーシャルメディアタイプのアプリケーションを作成しているチュートリアルに取り組んでいます。私はFirebaseを使用しており、ガイドから必要なものをすべて実装していますが、以下のコード以外はすべて動作しています。プライベートまたは@nonobjcに変更

エラーがあり修正することを要求していますが、非公開にするか、または@nonobjcを追加しています。

これは私のコードです:

func application(_ application: UIApplication, open url: URL, sourceApplication: String, annotation: AnyObject?) -> Bool { 
    return FBSDKApplicationDelegate.sharedInstance().application(application, open: url as URL!, sourceApplication: sourceApplication, annotation: annotation) 
} 

ありFirebaseサイト上のコードのバージョンがあるが、それは客観Cである:

- (BOOL)application:(UIApplication *)app 
      openURL:(NSURL *)url 
      options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { 

    BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application 
                    openURL:url 
                 sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] 
                   annotation:options[UIApplicationOpenURLOptionsAnnotationKey]]; 

    return handled; 
} 

・ホープ、このことができますし、理にかなっています。

答えて

0

一般に、アプリデリゲートメソッドをprivateまたは@nonobjcに変更する必要があることに関する警告は、アプリデリゲートメソッドのシグネチャが正しくないことを示しています。考えてみましょう:

func application(_ application: UIApplication, open url: URL, sourceApplication: String, annotation: AnyObject?) -> Bool { 
    ... 
} 

これは置き換えられました:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 
    ... 
} 
:iOSの9のように、 UIApplicationDelegateプロトコルの定義によると、

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
    ... 
} 

そして、これは賛成で非推奨とマークされています

この最後の演出は、あなたが私たちと共有したObjective-Cコードサンプルに最もよく対応しています。

+0

ありがとうございました。 –

関連する問題