这是我尝试从解析中为namesArray
中的用户获取图像的函数。
func fetchData(){
let imagePredicate = NSPredicate(format: "username IN %@", namesArray)
let imageQuery = PFQuery(className: "_User", predicate: imagePredicate)
imageQuery.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
for object in objects! {
self.imagesArray.append(object["image"] as! PFFile)
if self.imagesArray.count == self.namesArray.count {
self.tableView.reloadData()
}
} else {
print("error: \(error?.localizedDescription)")
}
}
}
这是我的
tableView:cellForRowAtIndexPath
方法:override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! ChatsCell
cell.nameLabel.text = namesArray[indexPath.row]
if imagesArray.count == namesArray.count && self.imagesLoaded == false{
imagesArray[indexPath.row].getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.imageView?.image = image
self.tableView.reloadData()
self.imagesLoaded = true
}
}
}
return cell
}
但是,当我这样做时,我看到图像与用户名不同步。即使我按其他顺序放置用户,图像也将保持以前的顺序。
我该如何更改?
最佳答案
不知道您在这里问什么。您是否期望图像以用户排序的数组形式返回?
如果是这样,那么您将需要向PFQuery添加排序顺序。我建议您按用户名对namesArray进行排序,然后再按用户名对imageQuery进行排序:
imageQuery.orderByDescending("username")
希望我理解这个问题;]
--T
关于ios - 从数组中获取谓词无序的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34806954/