我有一个函数返回一个类对象或零。该功能的目的是检查是否存在Chat
。聊天ID存储在MySQL中。如果ID存在,我执行Firebase引用来获取快照,然后获取对象。如果ID不存在,我返回nil:void函数中意外的非void返回值Swift3
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
我越来越空隙功能
意外的非空返回值。
想到我可能会错过的任何想法?
类似[这个问题](https://stackoverflow.com/a/32121273/6541007)。 – OOPer