【发布时间】:2015-08-03 13:42:07
【问题描述】:
抱歉,我想不出一个更好的标题。
基本上我有一个连接到 Parse 的应用程序。我指定了一个动作,它在文本字段更改时运行(即当用户键入字母时)
在此操作中,我调用 PFQuery 来解析,然后我要求 findObjectsInBackgroundWithBlock。
问题在于,如果用户在此查询完成运行之前键入另一个字母,那么现在有 2 个查询正在运行,并且两个查询的结果最终都会填充 tableView。
所以我的问题很简单,如果用户在第一个 findObjectsInBackgroundWithBlock 完成之前输入另一个字母,我将如何取消第一个并运行一个新的?
我尝试在操作开始时插入 PFQuery.cancel(query),但代码会混淆,因为当操作第一次运行时还没有运行查询。
我的代码,以防万一:
@IBAction func textFieldChanged (sender: AnyObject) {
let query = PFUser.Query()
query!.whereKey("Postcode", containsString: searchField.text)
query?.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
if let objects = objects {
for object in objects {
self.citiesArray.append(object["city"] as! String)
}
}
})
非常感谢您的耐心等待!
【问题讨论】:
标签: ios swift parse-platform pfquery