ios - 这个函数返回的元组有什么问题?

标签 ios swift tuples

这是一个应该返回类型为 Int 和 Dictionary < String , AnyObject > 的元组的函数,但是我一直收到此错误“元组类型‘(Int, Dictionary < String, AnyObject > )’和‘()’有不同数量的元素(2 对 0)。”这很奇怪,因为它似乎告诉我我正在返回正确的元组,但我不确定为什么它说“(元组)和'()'”有不同的论点。

    class func SomeFunc(param: String) -> (x: Int, y: Dictionary<String, AnyObject>){

    var request = HTTPTask()
    request.responseSerializer = JSONResponseSerializer()

    let params: Dictionary<String,AnyObject> = ["key": param]
    request.POST("http://mysite/url", parameters: params, success: {(response: HTTPResponse) in

        let dict = response.responseObject as Dictionary<String,AnyObject>
        let status:Int = 200
        return (status, dict) //Tuple types '(Int, Dictionary<String, AnyObject>)' and '()' have a different number of elements (2 vs. 0)


        },failure: {(error: NSError, response: HTTPResponse?) in

    })

}

最佳答案

传入一个闭包并使用所需的参数执行它:

func SomeFunc(param: String, withCompletion completion: (x: Int, y: Dictionary<String, AnyObject>) -> ()) {

    var request = HTTPTask()
    request.responseSerializer = JSONResponseSerializer()

    let params: Dictionary<String,AnyObject> = ["key": param]
    request.POST("http://mysite/url", parameters: params, success: {(response: HTTPResponse) in

        let dict = response.responseObject as Dictionary<String,AnyObject>
        let status:Int = 200
        completion(x: status,y: dict) //Tuple types '(Int, Dictionary<String, AnyObject>)' and '()' have a different number of elements (2 vs. 0)


        },failure: {(error: NSError, response: HTTPResponse?) in

    })

关于ios - 这个函数返回的元组有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27436209/

相关文章:

java - 等效于 iOS Swift 中的 Java 接口(interface)回调

python - 如何更改元组中的值?

c++ - 如何比较不同长度的元组?

ios - 在 KeyboardDidShow 上切换 UIBarButtonItem

ios - 如何在 iOS 10 中使用 TouchID

ios - nil 合并运算符 '??' 的左侧具有非可选类型 'String' ,因此从不使用右侧

ios - 单点触控 : ResignFirstResponder() issues

ios - 如何在不弄乱内容的情况下标记 dequeueReusableCell?

ios - 使用 MMDrawerController 时检测抽屉何时关闭

c++ - 如何在 C++ 11 中迭代 std::tuple