Dropbox 的问题 API

Problems with the Dropbox API

我正在尝试在我的应用程序中使用 Dropbox API。我的 ViewController.swift 中有一个按钮,当用户连接到他的保管箱帐户时,我想要一个按钮来显示状态 "Connect" 或 "Disconnect"。问题是,当用户按下按钮(表示连接)并填写 Dropbox 提供给用户的表单时,按钮不会将状态更改为 "Disconnect"。所以这是代码:

AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    let appKey = "myappkey"      
    let appSecret = "mysecretappkey"

    let dropboxSession = DBSession(appKey: appKey, appSecret: appSecret, root: kDBRootAppFolder)
    DBSession.setShared(dropboxSession)


    return true
}


private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool{

    if DBSession.shared().handleOpen(url as URL!) {
        if DBSession.shared().isLinked() {
            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "didLinkToDropboxAccountNotification"), object: nil)
            return true
        }
    }

    return false
}

ViewController:

    override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector: #selector(ViewController.handleDidLinkNotification(notification:)), name: NSNotification.Name(rawValue: "didLinkToDropboxAccountNotification"), object: nil)


    if DBSession.shared().isLinked() {
        bbiConnect.title = "Disconnect"
    }

}

func handleDidLinkNotification(notification: NSNotification) {
    bbiConnect.title = "Disconnect"
}


@IBAction func connectToDropbox(_ sender: AnyObject) {

    if !DBSession.shared().isLinked() {
        DBSession.shared().link(from: self)
    }

    else {
        DBSession.shared().unlinkAll()
        bbiConnect.title = "Connect"
    }


}

当我填写表格以登录我的 Dropbox 帐户时,出现此错误:

DBDemo[78292:2358549] [ERROR] DropboxSDK: app delegate does not implement application:openURL:sourceApplication:annotation:

我使用的是 1.3.14 版本的 Dropbox SDK

错误提示您没有调用正确的签名

private func application(application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool{

更改您的签名并在此处尝试一次使用 Any[string:Any]

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