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

标签 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
        }
    }

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

最佳答案

如果您想要获得响应后的值,请执行此操作。

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)
        }
    }
}

现在您可以从任何地方调用它,如下所示。

classObject.getResponse {(isResponse) -> Void in 

//Do your stuff with isResponse variable.
}

关于ios - void 函数中出现意外的非 void 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279359/

相关文章:

swift - 如何从另一个场景调用函数?

ios - 将 Action Segue 从按钮推送到 UIViewController

ios - 在 iOS 上通过 URL 方案启动 Viber 应用程序

ios - 通用链接打开错误的应用程序(Facebook 应用程序)

swift - 如何在快速按下按钮时更改网址

ios - googleCast 框架的本地化不起作用

ios - 自定义相机 View Swift iOS 8 iPhone Xcode 6.1

iphone - 旋转 iPhone/iPad 时正确分配间距?

ios - 如何避免警告 : Preparing debugger support of iPAD

iphone - 如何使用嵌入式 HTML 检查 youtube 视频是否存在