【发布时间】:2017-08-28 18:57:37
【问题描述】:
我有一个返回类对象或 nil 的函数。该函数的目的是检查Chat 是否存在。聊天 ID 存储在 MySQL 中。如果 ID 存在,我执行 Firebase 引用以获取快照,然后获取对象。如果ID不存在,我返回nil:
func findChat(string: String) -> 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 == "" {
returnValue = nil
} else {
let ref = DatabaseReference.chats.reference()
let query = ref.queryOrdered(byChild: "uid").queryEqual(toValue: (self.responseFromServer))
query.observe(.childAdded, with: { snapshot in
returnValue = Chat(dictionary: snapshot.value as! [String : Any])
})
}
return returnValue
}
}
但是,return returnValue 我得到了
void 函数中出现意外的非 void 返回值。
对我可能缺少什么有什么想法吗?
【问题讨论】:
-
类似于this issue。