【问题标题】:Limiting Parse Query限制解析查询
【发布时间】:2016-03-07 17:16:26
【问题描述】:

我想从 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!

如果有人知道如何解决这个问题,我真的很感激任何帮助!

【问题讨论】:

    标签: ios swift parse-platform tableview


    【解决方案1】:

    我没有使用过 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");
    }];
    

    【讨论】:

    • 当我添加它时,它会删除所有这些...我不希望键不存在,我只是不希望列中的空行不存在。
    • 是的,它会检查 Parse 类中的“未定义”值。如果特定用户的“latestImage”不存在,它会将这些用户返回给您,并将其限制为 5 个。
    • 我不想返回 latestImage 不存在的那些,反之亦然! ;)
    • 如果您想反过来,您可以在查询中使用“whereKeyExists”。所以你的查询会变成这样:PFQuery *query = [PFQuery queryWithClassName:@"_User"]; [查询 whereKeyExists:@"latestImage"];查询.limit = 5; [查询 findObjectsInBackgroundWithBlock:^(NSArray * _Nullable objects, NSError * _Nullable error) { NSLog(@"Got 5 objects"); }];
    • 哈哈,我试过了,但没用,我得到了无法识别的标识符,一定是打错了!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多