[英]swift/parse getObjectInBackgroundWithId query not working
[英]Parse query not working in Swift 2.0
所以我有一個查詢,試圖在Parse中的數據庫中查找用戶。 由於某種原因,在更新到Swift 2.0之后,以下代碼出現以下錯誤。
無法將類型'([[AnyObject] ?, NSError?)-> Void'的值轉換為預期的參數類型'PFQueryArrayResultBlock?'
這是給我錯誤的代碼,我不確定為什么。 整個功能如下。
query.findObjectsInBackgroundWithBlock {
(results: [AnyObject]?, error: NSError?) -> Void in
如果有幫助,這就是整個功能。
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
let fullnameQuery = PFQuery(className: "_User")
fullnameQuery.whereKey("fullname", containsString: searchBar.text)
let usernameQuery = PFQuery(className: "_User")
usernameQuery.whereKey("username", containsString: searchBar.text)
let query = PFQuery.orQueryWithSubqueries([fullnameQuery, usernameQuery])
query.findObjectsInBackgroundWithBlock {
(results: [AnyObject]?, error: NSError?) -> Void in
if error != nil {
let myAlert = UIAlertController(title: "Alert", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.Alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil)
myAlert.addAction(okAction)
self.presentViewController(myAlert, animated: true, completion: nil)
return
}
if let objects = results as? [PFObject] {
self.searchResults.removeAll(keepCapacity: false)
for object in objects {
self.searchResults.append(object)
}
dispatch_async(dispatch_get_main_queue()) {
self.table.reloadData()
self.searchController.resignFirstResponder()
}
}
}
}
要正確調用此命令,您需要使用以下命令
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if let objects = objects {
if error == nil {
for object in objects {
self.searchResults.append(object)
}
dispatch_async(dispatch_get_main_queue()) {
self.table.reloadData()
self.searchController.resignFirstResponder()
}
} else {
print("Error: \(error!) \(error!.userInfo)")
}
}
}
更好的是,編譯器非常擅長基於方法簽名來推斷類型。 您真正需要的是:
query.findObjectsInBackgroundWithBlock {
(results, error ) -> Void in
}
嘗試將其更改為
query.findObjectsInBackgroundWithBlock {
(results: [PFObject]?, error: NSError?) -> Void in
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.