Я сталкиваюсь с проблемой, когда люди говорят, что происходит сбой приложения при загрузке библиотеки фотографий в collectionView.Большую часть времени они имеют более 2-3 тысяч фотографий.Для меня это работает нормально.(У меня в библиотеке менее 1000 фотографий).
Вопрос: может быть, есть какой-нибудь способ отобразить изображения в коллекции. Более «умный» и использующий меньше памяти?PS Может быть, когда у пользователя есть все его фотографии в iCloud, это тоже может вызвать сбой?Потому что до сих пор я думал, что приложение не загружает фотографии при загрузке его в ячейку.Может быть, кто-то может доказать или не одобрить этот факт.
Вот моя функция:
func grabPhotos(){
let imgManager = PHImageManager.default()
let requestOptions = PHImageRequestOptions()
requestOptions.isSynchronous = false
requestOptions.deliveryMode = .opportunistic // Quality of images
requestOptions.isNetworkAccessAllowed = true
requestOptions.isSynchronous = true
requestOptions.progressHandler = { (progress, error, stop, info) in
print("progress: \(progress)")
}
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
if let fetchResult : PHFetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions) {
if fetchResult.count > 0 {
for i in 0..<fetchResult.count {
imgManager.requestImage(for: fetchResult.object(at: i) , targetSize: CGSize(width: 150, height: 150), contentMode: .aspectFill, options: requestOptions, resultHandler: { image, error in
self.imageArray.append(image!)
self.kolekcija.reloadData()
})
}
}
else {
print("You got no photos")
kolekcija.reloadData()
}
}
}