метод сохраняет данные В Core Data, основная проблема сохранить
let data = try? Data(contentsOf: imageUrl!)
в фоновом режиме как правильно сделать?
Подскажите,пожалуйста
func saveAllFeedsCoreData() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let privateMOC = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
privateMOC.parent = context
let fetchRequest: NSFetchRequest<FeedCoreData> = FeedCoreData.fetchRequest()
do {
feedsCoreData = try context.fetch(fetchRequest)
} catch {
print(error.localizedDescription)
}
for feed in feeds {
let entity = NSEntityDescription.entity(forEntityName: "FeedCoreData", in: context)
let taskObject = NSManagedObject(entity: entity!, insertInto: context) as! FeedCoreData
if feedsCoreData.contains(where: { $0.title == feed.title && $0.date == feed.date}) {
continue
}
taskObject.title = feed.title
taskObject.date = feed.date
taskObject.descriptionFeed = feed.descriptionFeed
taskObject.dateDate = feed.dateDate as NSDate?
privateMOC.perform {
let urlString = feed.imageUrl
let imageUrl = URL(string: urlString)
let data = try? Data(contentsOf: imageUrl!)
taskObject.imageNSData = data as NSData?
print("Saved! Good Job!")
do {
try privateMOC.save()
context.performAndWait {
do {
try context.save()
} catch {
fatalError("Failure to save context: \(error)")
}
}
} catch {
fatalError("Failure to save context: \(error)")
}
}
}
}