解析服务器Swift逻辑以获取数组中包含的所有项

解析服务器Swift逻辑以获取数组中包含的所有项,swift,xcode,amazon-web-services,parse-platform,Swift,Xcode,Amazon Web Services,Parse Platform,我正在使用Swift解析服务器。我正在尝试获取commentUserArray中包含键“username”的所有匹配项。Comment userArray显示3个名称[“用户名”、“用户名”、“用户名2”] 查询只获取两个值,而不是三个值,因为它只查找这两个用户名“username”和“username1”。但是,我需要这3个实例。请帮忙 var commentImgUrlArray: [NSString] = [] func getPics(_ completionHandler

我正在使用Swift解析服务器。我正在尝试获取commentUserArray中包含键“username”的所有匹配项。Comment userArray显示3个名称[“用户名”、“用户名”、“用户名2”]

查询只获取两个值,而不是三个值,因为它只查找这两个用户名“username”和“username1”。但是,我需要这3个实例。请帮忙

   var commentImgUrlArray: [NSString] = []

   func getPics(_ completionHandler: @escaping () -> Void) {
    let query = PFQuery(className: "_User")
    query.whereKey("username", containedIn: commentUserArray)
    query.findObjectsInBackground(block: { (objects: [PFObject]?, error: Error?) in
    if let objects = objects {
        for object in objects {
                if error == nil {
                    let imageFile = object["profilePic"] as? PFFileObject
                    let imageFileString = imageFile?.url as! String
                    if let url = URL(string: imageFileString) {
                        let data = try? Data(contentsOf: url)
                        if let imageData = data {
                            self.commentImgUrlArray.append(imageFileString as NSString)
                            print(self.commentImgUrlArray)
                        }
                    }
                    }
                }
                completionHandler()
            }
    })
}

因此,经过一些尝试和错误,我找到了解决方案

  • 删除包含在as中的原始查询。该查询将覆盖公式的其余部分

  • 理想情况下,我希望运行一个查询。然而,commentuserarray中没有太多。因此,for in循环应该放在查询内。find-->

  • 需要为特定用户获取对象。因此,让pfuser=object[“username”]作为字符串

  • 反转数组以获得正确的顺序--

    }

  •  func getPics(_ completionHandler: @escaping () -> Void) {
     let query = PFQuery(className: "_User")
     query.findObjectsInBackground(block: { (objects: [PFObject]?, error: 
     Error?) in
     if let objects = objects {
         for object in objects {
                 if error == nil {
                     for user in self.commentUserArray {
                     let pfuser = object["username"] as! String
                     if pfuser == user {
                     let imageFile = object["profilePic"] as? PFFileObject
                     let imageFileString = imageFile?.url as! String
                     if let url = URL(string: imageFileString) {
                         let data = try? Data(contentsOf: url)
                         if let imageData = data {
                             self.commentImgUrlArray.append(imageFileString as 
                           NSString)
                             print(self.commentImgUrlArray)
                         }
                                 }
                             }
                         }
                     }
                 }
                 self.commentImgUrlArray.reverse()
                 completionHandler()
             }
     })