我想从 Parse 检索 5 个用户,并发布他们的最新图像。但如果他们尚未发布图像,该列将为空,因此我设置了如下查询:
func uu() {
let query = PFQuery(className: "_User")
query.includeKey("latestImage")
query.whereKey("username", notEqualTo: PFUser.currentUser()!.username!)
query.findObjectsInBackgroundWithBlock { (object:[PFObject]?, error:NSError?) -> Void in
if error == nil {
for object in object! {
if (object.objectForKey("latestImage") != nil)
{
self.lastPicArray.append(object.objectForKey("latestImage")!.valueForKey("image") as! PFFile)
self.profilePicArray.append(object.valueForKey("profilePicture") as! PFFile)
self.fullnameArray.append(object.valueForKey("firstname") as! String)
self.usernameArr.append(object.valueForKey("username") as! String)
}
}
self.collectionView.reloadData()
print(self.usernameArr)
print(self.lastPicArray)
}
}
}
正如您所见,我添加了 query.limit = 5,因为当我这样做时,它们似乎按某种顺序排列...并且如果按照该顺序,某些用户在 lastPic 列中没有任何内容没有显示任何内容...但是我需要它做的是找到该列中包含某些内容的所有用户,然后将它们限制为 5...目前我的代码除了将它们限制为 5 之外还执行所有这些操作!
如果有人知道如何解决这个问题,我真的很感激任何帮助!
最佳答案
我没有使用过 Swift,但这就是它在 Objective C 中为您工作的方式,您需要在查询中合并“whereKeyDoesNotExist”并为其添加限制。以下是工作代码:
PFQuery *query = [PFQuery queryWithClassName:@"_User"];
[query whereKeyDoesNotExist:@"latestImage"];
query.limit = 5;
[query findObjectsInBackgroundWithBlock:^(NSArray * _Nullable objects, NSError * _Nullable error) {
NSLog(@"Got 5 objects");
}];
关于ios - 限制解析查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849888/