Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法调用';执行';具有类型为';(1)及"x27 ;;_Swift_Xcode_Square Connect - Fatal编程技术网

Swift 无法调用';执行';具有类型为';(1)及"x27 ;;

Swift 无法调用';执行';具有类型为';(1)及"x27 ;;,swift,xcode,square-connect,Swift,Xcode,Square Connect,为什么这个正方形的例子对他们的自述不起作用 let callbackURL = URL(string: "OdinMobile://")! do { let amount = try SCCMoney(amountCents: money, currencyCode: "USD") let request : SCCAPIRequest = try SCCAPIRequest( callba

为什么这个正方形的例子对他们的自述不起作用

    let callbackURL = URL(string: "OdinMobile://")!
    do {
        let amount = try SCCMoney(amountCents: money, currencyCode: "USD")

        let request : SCCAPIRequest =
            try SCCAPIRequest(
                callbackURL: callbackURL,
                amount: amount,
                userInfoString: userInfoString,
                merchantID: nil,
                notes: notes,
                customerID: nil,
                supportedTenderTypes: supportedTenderTypes,
                clearsDefaultFees: clearsDefaultFees,
                returnAutomaticallyAfterPayment: true
            )

    } catch let error as NSError {
        print(error.localizedDescription)
    }

    do {
        try SCCAPIConnection.perform(request)
    } catch let error as NSError {
        print(error.localizedDescription)
    }

我得到了一个
无法调用带有类型为“(?”
的参数列表的'perform',另外还有一条
消息,即'perform'的重载存在于这些部分匹配的参数列表中:(SCCAPIRequest),(Selector!)
。我想把
请求
作为SCCAPIRequest,为什么不作为一个整体阅读呢?这是因为它位于
do
块中吗?

关键字在其花括号内创建了一个作用域,就像
if
for
循环一样,这意味着您创建的请求在第一个作用域内,在第二个作用域中不可用。因为在这两种情况下,您使用相同的错误执行相同的操作,所以您可以将
perform
调用移动到相同的范围内

let callbackURL = URL(string: "OdinMobile://")!
do {
    let amount = try SCCMoney(amountCents: money, currencyCode: "USD")

    let request : SCCAPIRequest =
        try SCCAPIRequest(
            callbackURL: callbackURL,
            amount: amount,
            userInfoString: userInfoString,
            merchantID: nil,
            notes: notes,
            customerID: nil,
            supportedTenderTypes: supportedTenderTypes,
            clearsDefaultFees: clearsDefaultFees,
            returnAutomaticallyAfterPayment: true
        )
    try SCCAPIConnection.perform(request)
} catch let error as NSError {
    print(error.localizedDescription)
}

do
关键字在其花括号内创建一个作用域,如
if
for
循环,这意味着您创建的请求在第一个作用域内,在第二个作用域中不可用。因为在这两种情况下,您使用相同的错误执行相同的操作,所以您可以将
perform
调用移动到相同的范围内

let callbackURL = URL(string: "OdinMobile://")!
do {
    let amount = try SCCMoney(amountCents: money, currencyCode: "USD")

    let request : SCCAPIRequest =
        try SCCAPIRequest(
            callbackURL: callbackURL,
            amount: amount,
            userInfoString: userInfoString,
            merchantID: nil,
            notes: notes,
            customerID: nil,
            supportedTenderTypes: supportedTenderTypes,
            clearsDefaultFees: clearsDefaultFees,
            returnAutomaticallyAfterPayment: true
        )
    try SCCAPIConnection.perform(request)
} catch let error as NSError {
    print(error.localizedDescription)
}

@NilsGuillermin当你有机会的时候,请一定要接受这个答案。。。谢谢你,伙计@NilsGuillermin当你有机会的时候,请一定要接受这个答案。。。谢谢你,伙计!