Parse Server Swift Logic 用于抓取数组中包含的所有项目

Posted

技术标签:

【中文标题】Parse Server Swift Logic 用于抓取数组中包含的所有项目【英文标题】:Parse Server Swift Logic for grabbing all items contained in array 【发布时间】:2021-02-02 19:23:16 【问题描述】:

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

查询只获取两个值而不是三个值,因为它只查找这两个用户名“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()
            
    )

【问题讨论】:

【参考方案1】:

所以经过反复试验,我找到了解决方案。

    删除原来的query.contained in,因为它会覆盖公式的其余部分。

    理想情况下,我想运行一个查询。然而,commentuserarray 中并没有很多。因此,for in 循环应该放在 query.find 中 -->

    需要为该特定用户抓取对象。因此,设 pfuser = object["username"] as String

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

     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()
             
     )
    

【讨论】:

以上是关于Parse Server Swift Logic 用于抓取数组中包含的所有项目的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 上传图片到 Parse Server

使用 Swift 在 Parse Server 中触发

使用 Swift Parse Server 和 AWS SES 请求重置电子邮件的密码

在 Parse Server 中向我的数组添加唯一值(swift 3)

如何将 iOS Swift 应用程序指向 Amazon Web Services 上的 Parse Server?

iOS Swift App 不会收到 Parse Server 发送的推送通知