void函数中出现意外的非void返回值

Nik*_*nov 14 ios swift

我正在做HTTP请求并得到我的响应func.它返回响应的值.我是这样做的:

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
        stringResponse = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
        if stringResponse == "0" {
            return false
        } else if stringResponse == "1" {
            return true
        } else {
            return false
        }
    }
Run Code Online (Sandbox Code Playgroud)

但在所有returns我有错误Unexpected non-void return value in void function如何解决这个问题?

Ami*_*t89 17

如果您在获得响应后想要该值,请执行此操作.

func getResponse(completionHandler : ((isResponse : Bool) -> Void)) {

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
        stringResponse = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
        if stringResponse == "0" {
           completionHandler(isResponse : false)
        } else if stringResponse == "1" {
           completionHandler(isResponse : true)
        } else {
           completionHandler(isResponse : false)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在你可以从你所在的地方打电话给它.

classObject.getResponse {(isResponse) -> Void in 

//Do your stuff with isResponse variable.
}
Run Code Online (Sandbox Code Playgroud)