2016-10-05 4 views
1

소셜 미디어 유형 앱을 만드는 자습서를 작성 중입니다. 나는 Firebase를 사용 중이며 거기에서 필요한 모든 것을 구현했다. 아래의 코드를 제외하고는 모두 작동하고있다.개인 또는 @nonobjc로 변경

오류가있어 수정을 요청하지만 비공개로 설정하거나 @nonobjc를 추가한다고 말하고 있습니다. 거기 중포 기지 사이트 코드의 버전이 있지만 목표 C에

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) 
} 

:

- (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 { 
    ... 
} 
: 아이폰 OS 9과 같이 UIApplicationDelegate 프로토콜 정의에 따라,

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

그리고, 이것은 찬성되지 않는 것으로 표시되었습니다

이 마지막 변환은 우리와 공유 한 Objective-C 코드 샘플에 가장 가깝게 대응합니다.

+0

감사합니다. Rob, 이제 말이됩니다. –