栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

问题是您试图从一个封闭内部返回一个非空值,该值仅从封闭内部返回,但是由于该封闭期望一个空返回值,因此您会收到错误消息。

您不能使用标准

return ...
语法从异步函数返回,必须声明函数以接受完成处理程序,并从完成处理程序内部的异步网络调用返回值。

func findChat(string: String, completion: @escaping (Chat?)->()) {    var returnValue: (Chat?)    let url = getChatsURL    let Parameters = [ "title" : string ]    Alamofire.request("(url)", method: .post, parameters: Parameters).validate().responseString { response in        if let anyResponse = response.result.value { self.responseFromServer = anyResponse        }        if self.responseFromServer == "" { completion(nil)        } else { let ref = DatabaseReference.chats.reference() let query = ref.queryOrdered(byChild: "uid").queryEqual(toValue: (self.responseFromServer))     query.observe(.childAdded, with: { snapshot in     completion(Chat(dictionary: snapshot.value as! [String : Any])) })        }    }}

然后,您可以调用此函数并使用如下所示的返回值:

findChat(string: "inputString", completion: { chat in    if let chat = chat {        //use the return value    } else {        //handle nil response    }})


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号