将URL字符串添加到URL数组,然后为TableView检索URL图像数据

好的,所以我正在关注youtube b / c上的教程,我的最终目标是使用NSCache。我有一个称为photoQuery()的函数。 PhotoQuery()在usernameArray中查找用户名。 usernameArray有两个用户名。  然后,我运行URL查找以查找图像并将图像附加到名为messageImageArray的UIImageArray。对于usernameArray中的两个用户名...我将三个图像添加到了imageArray中。

输出显示出我的逻辑上明显的错误,但我不明白: 打印(URL)应该只打印两次...但是它打印三遍 print(URLArray.count)应该只打印两次...,然后是2 ...,但是它会打印1、2、2 ... print(messageImageArray)应该只打印两个图像...但是它打印三个图像 ...因此,第一个URL被调用两次以显示同一图像,而第二个URL仅被调用一次。有人可以解决这个问题吗?

func photoQuery () {
    for username in self.usernameArray {
        let photoQuery = PFQuery(classname: "UserPhoto")
        photoQuery.whereKey("username",equalTo: username)
        photoQuery.findObjectsInBackground(block: { (objects: [PFObject]?,error: Error?) in
        if let objects = objects {
            for object in objects {
                if error == nil {
                let userImageFile = object["photo"] as? PFFileObject
                let urlString = userImageFile?.url as! String
                self.urlArray.append(urlString)
            }
        }
            for url in self.urlArray {
                print(self.urlArray.count)
            print(url)
            if let url = URL(string: url) {
            let data = try? Data(contentsof: url)
            if let imageData = data {
                self.messageImageArray.append(UIImage(data: imageData)!)
                print(self.messageImageArray)
                        }
                    }
                }
            }
        })
    }
}
hz000005 回答:将URL字符串添加到URL数组,然后为TableView检索URL图像数据

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3149065.html

大家都在问