Хорошо, поэтому я следую учебному пособию по YouTube, моя конечная цель - использовать NSCache. У меня есть эта функция под названием photoQuery (). PhotoQuery () ищет имя пользователя в usernameArray. usernameArray имеет два имени пользователя. Затем я запускаю поиск URL, чтобы найти изображение, и добавляю его в UIImageArray с именем messageImageArray. Для двух имен пользователей в usernameArray ... я получаю три изображения, добавленные в мой imageArray.
Вывод показывает очевидную ошибку в моей логике, но я не понимаю: печать (URL) должна печататься только дважды. ... но он печатает три раза. Печать (URLArray.count) должна печататься только дважды ... 1, затем 2 ... однако она печатает 1, 2, 2 ... Печать (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)
}
}
}
}
})
}
}