Я пытался загрузить 6 изображений в 6 изображений из каталога документов. Я использовал dispatchqueue
let concurrentQueue = DispatchQueue(label: "myConcurrentQueue", qos: .background, attributes: [.concurrent,.initiallyInactive], autoreleaseFrequency: .inherit, target: nil)
Но даже если я использую параллельную очередь, пользовательский интерфейс все еще не отвечает, пользовательский интерфейс заблокирован
Я использовал код ниже
private func loadImagesConCurrent() {
let concurrentQueue = DispatchQueue(label: "myConcurrentQueue", qos: .background, attributes: [.concurrent,.initiallyInactive], autoreleaseFrequency: .inherit, target: nil)
dispatchq = concurrentQueue
activity.startAnimating()
for i in 0..<myArray.count {
concurrentQueue.async { [weak self] in
do {
let location = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first
let filename = URL(fileURLWithPath: location!).appendingPathComponent((self?.myArray[i]) as! String)
if let image = UIImage(contentsOfFile: filename.path) {
DispatchQueue.main.async {
self?.imagesCollection[i].image = image
print("loaded")
if i == (self?.myArray.count)! - 1 {
self?.activity.startAnimating()
}
}
}
} catch {
print(error.localizedDescription)
}
}
}
}