我想从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之外还做了所有这些!
如果有人知道如何解决这个问题,我真的很感激任何帮助!
答案 0 :(得分:0)
我没有使用过Swift,但它是如何在目标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");
}];