PFQueryTableViewControllerを拡張するクラスがあります。このクラスのqueryForTable() の実装では、 を使用してクエリを作成するために追加するデータを取得しようとしていますfindObjectsInBackgroundWithBlock
。問題は、findObjectsInBackgroundWithBlock
が非同期であるため、 から取得したデータをどのように使用し、それを使用して以下findObjectsInBackgroundWithBlock
をビルドし、 .query
return query
私のコードとエラーを以下に示します。
override func queryForTable() -> PFQuery {
let query = PFUser.query()
//let query = PFQuery(className: "Room")
query?.whereKey("objectId", notEqualTo: PFUser.currentUser()!.objectId!)
//Showing OnlineUsers only
let onlineUsersQuery = PFQuery(className: "OnlineUsers")
onlineUsersQuery.whereKey("user", equalTo: PFUser.currentUser()!)
onlineUsersQuery.findObjectsInBackgroundWithBlock({ (results:[AnyObject]?, error:NSError?) -> Void in
let usersOnlineNow = results as! [PFObject]
for user in usersOnlineNow {
self.mLog.printToLog("Select only users who are in the OnLineUsers column")
query?.whereKey("objectId", equalTo: PFUser.currentUser()!.objectId!)
//query?.whereKey("objectId", equalTo: "noone")
if self.searchInProgress {
query!.whereKey("username", containsString: self.searchString)
}
if self.objects!.count == 0 {
//https://groups.google.com/forum/#!topic/parse-developers/7O9YCHNbuEo
query!.cachePolicy = PFCachePolicy.CacheThenNetwork //kPFCachePolicyCacheThenNetwork
//query.cachePolicy = kPFCachePolicyCacheThenNetwork
}
query!.orderByAscending("username")
return query!
}
})
// query!.orderByAscending("username")
//
// return query!
}