Pinterest iOS SDK w/Swift始终返回“;无法转换类型为';(PDK响应对象)>;()';到预期的参数类型';PDK响应对象'&引用;

Pinterest iOS SDK w/Swift始终返回“;无法转换类型为';(PDK响应对象)>;()';到预期的参数类型';PDK响应对象'&引用;,swift,sdk,typeerror,pinterest,Swift,Sdk,Typeerror,Pinterest,作为练习,我正在尝试构建Pinterest iOS克隆——第一天使用xcode和swift。我无法获得任何使用Pinterest SDK正常工作的函数。每个函数都会给出一个类型错误 例如,以下是我用于登录的代码: @IBAction func login(_ sender: UIButton) { PDKClient.sharedInstance().authenticate( withPermissions: [PDKClientReadPublicPermission

作为练习,我正在尝试构建Pinterest iOS克隆——第一天使用xcode和swift。我无法获得任何使用Pinterest SDK正常工作的函数。每个函数都会给出一个类型错误

例如,以下是我用于登录的代码:

@IBAction func login(_ sender: UIButton) {
    PDKClient.sharedInstance().authenticate(
        withPermissions: [PDKClientReadPublicPermissions],
        from: self,
        withSuccess: { (success: PDKClientSuccess!) in
            print(success)
        },
        andFailure: { (failure: PDKClientFailure!) in

            print(failure)
        }
    )
}
我返回以下错误:

Cannot convert value of type '(PDKClientSuccess!) -> ()' to expected argument type 'PDKClientSuccess!'
ViewController.swift:28:26: Cannot convert value of type 'PDKClientSuccess!.Type' (aka'ImplicitlyUnwrappedOptional<(Optional<PDKResponseObject>) -> ()>.Type') to expected argument type 'PDKClientSuccess!'
如果我使用成功:PDKClientSuccess!然后我得到以下错误:

Cannot convert value of type '(PDKClientSuccess!) -> ()' to expected argument type 'PDKClientSuccess!'
ViewController.swift:28:26: Cannot convert value of type 'PDKClientSuccess!.Type' (aka'ImplicitlyUnwrappedOptional<(Optional<PDKResponseObject>) -> ()>.Type') to expected argument type 'PDKClientSuccess!'

尽管根据我从xcode收到的错误消息,该函数现在被称为“authenticate”,“withPermissions”是一个参数,“fromViewController”现在只是“from”。

所以问题是我在传递一个函数时,它正期待一个闭包。因此,类型错误是有意义的

正确的代码是:

PDKClient.sharedInstance().authenticate(
    withPermissions: [PDKClientReadPublicPermissions],
    from: self,
    withSuccess: { (success) in print(success ?? "succeeds") },
    andFailure: { (failure) in print(failure ?? "fails") }
)
不幸的是,这并没有解决所有问题。。。我从未成功或失败过,但至少xcode没有抱怨