Я внедрил базовые данные в многопоточную среду, у меня есть некоторые сомнения и проблемы, связанные с ними, которые я перечисляю ниже: -
- В нескольких блогах и ответах SO говорится, что у вас должен быть один
NSPersistentStoreCoordinator
(PSC), но, насколько я понимаю, 'PSC' должно быть равно количеству ManagedObjectModel.Пожалуйста, исправьте меня, если я ошибаюсь. Согласно документу, объекты ManagedObjectContext должны быть равны количеству потоков, которые мы создаем для выполнения действия в конкретной модели.К моему удивлению, я использовал один объект ManagedObjectContext из разных потоков и выполнял действие извлечения одновременно без какого-либо сбоя, пожалуйста, найдите код ниже: -
Я вызываю функцию ниже из разных потоков и проверяю толькоодин экземпляр MOC создан.Удалите все сомнения, которые у меня есть
func fetchUserDetail(productId : Int) -> User_Details? {
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "User_Details")
do {
fetchRequest.predicate = NSPredicate(format: "product_id == %d", productId)
let results:[User_Details]? = try (singleinstancemanagedObjectContext.fetch(fetchRequest) as? [User_Details])
if let results = results {
..... logic .....
}
} catch let error as NSError {
}
return nil
}