这个问题在这里已有答案:

我正在做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 s我有错误Unexpected non-void return value in void function出现Unexpected non-void return value in void function如何解决这个问题?

===============>>#1 票数: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)
        }
    }
}

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

classObject.getResponse {(isResponse) -> Void in 

//Do your stuff with isResponse variable.
}

===============>>#2 票数:0

sendAsynchronousRequest的最后一个参数是一个带有类型的完成处理程序(NSURLResponse!, NSData!, NSError!) -> Void 请注意,它没有任何返回类型,因此不要返回任何内容。

完成处理程序由连接框架调用,它不需要任何返回类型。

你想通过这种回归实现的目标非常模糊,但你不能这样做。

  ask by Nikita Zernov translate from so

未解决问题?本站智能推荐:

3回复

void函数中出现意外的非void返回值,返回多个值[重复]

这个问题在这里已有答案: 如何从Alamofire 5回答 价值 为什么void函数中出现意外的非void返回值? [重复] 2个答案 我有一个问题,我创建的函数,我想返回多个值,但似乎,我一直收到此错误 void函数中出现意外的非void返回
2回复

TableView中出现意外的非无效返回值

我有一个tableview控制器,对于tableview,我正在注册两个单元格。 根据数据库中的数据,将确定要为tableView的每一行注册哪个单元格。 但是我的班级中有一个指针,我用来从另一个班级中获取数据,因此我必须先获取数据,然后才能确定使用了哪个单元格,并且我的代码在void函数中
1回复

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

在开始基于学校的主要项目编码之前,我正在基于教程( https://www.youtube.com/watch?v=B6W2Rp8Uumo&feature=youtu.be )进行测试。 一切顺利,直到我遇到错误。 void函数中出现意外的非void返回值。 我已经阅读了有
2回复

为什么在void函数中会发生意外的非void返回值? [重复]

这个问题已经在这里有了答案: 如何从Alamofire返回价值 5答案 我创建了一个从API获取URL并返回URL字符串作为结果的函数。 但是,Xcode给我此错误消息: void函数中非预期的非无效返回值 有谁知道为什么会这样吗?
2回复

void函数中意外的non void返回值

我一直在寻找堆栈溢出的问题,试图找出解决此错误的方法: void函数中意外的non void返回值 我在函数中返回一个Bool值。 我似乎无法从这条路中摸索出来。 我确定它与异步有关,但是我对这些类型的函数不是很熟悉。 从另一台vc上的viewdidload调用
1回复

Swift中void函数中的dispatch_async和意外的非void返回值

我的appDelegate中有一个返回用户当前位置的函数。 现在我想在其他地方异步调用它,我做到了: 但是现在这行return appDelegate.getLocation()给我带来了错误: void函数中意外的非无效返回值 我对Swift线程还不太了解,您能
2回复

新Swift类中void函数中的意外非void返回值

我刚开始学习面向对象,我开始编写一个用户类,它有一个计算用户与对象距离的方法。 它看起来像这样: 在上面标记的行,我收到以下错误: 我在别处寻找解决方案,但似乎找不到任何适用于此实例的内容。 我在其他地方使用了distanceFromLocation代码,并且它运行正常,所以
2回复

类的理解:void函数中的意外的非void返回值(Swift 3)

我试图弄清楚班级是如何迅速工作的。 我已经阅读了dev.apple上的类文档,但是可能有些我不了解的基本知识。 赞赏帮助,并在可能的情况下澄清应如何工作。 运行getData.connect时,无法从此函数返回json对象 错误: getData.swift:39:20: Une
2回复

void函数Swift3中意外的非无效返回值

我有一个返回类对象或nil的函数。 该功能的目的是检查Chat存在。 聊天ID存储在MySQL中。 如果ID存在,则执行Firebase引用以获取快照,然后获取对象。 如果ID不存在,则返回nil: 但是,在return returnValue我得到 void函数中非预
3回复

void函数中的异常非无效返回值-Swift 4(Firebase,Firestore)

这个问题已经在这里有了答案: 如何通过Firebase返回在数据服务类中创建的对象? 1个答案 因此,我希望一个布尔函数返回true或false,具体取决于在users集合中是否存在给定用户的给定电子邮件。 但是,如果我尝试在getDocuments调用中返