在范围内找不到'ApplicationDelegate'

时间:2020-10-28 11:30:33

标签: ios swift

我正在安装Facebook Graph API,我目前停留在以下位置。似乎我无法从场景委托中找到应用程序委托。

如果您使用的是iOS 13或更高版本,请将以下方法添加到 您的SceneDelegate

// Swift
//
// SceneDelegate.swift

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

应用上述方法时,出现以下错误。

Cannot find 'ApplicationDelegate' in scope

2 个答案:

答案 0 :(得分:2)

在你的 SceneDelegate 中导入 FBSDKCoreKit 并且它工作正常

答案 1 :(得分:1)

ApplicationDelegate是一个协议。您不能向协议发送方法-您必须向符合该协议的对象发送消息。您需要在应用程序中找到符合ApplicationDelegate协议的对象。您使用ApplicationDelegate单例的UIApplication属性找到delegate。 ({UIApplication.sharedUIApplication类的方法,它返回指向UIApplication单例的指针。)

您想要的语法是

UIApplication.shared.delegate?.application(
    UIApplication.shared, 
    open: url,
    sourceApplication: nil,
    annotation: [UIApplication.OpenURLOptionsKey.annotation]
)