NSManagedObjectContext — это центральный компонент стека Core Data. Он работает как черновик, где управляемые объекты создаются, извлекаются, изменяются и удаляются перед тем, как любые изменения будут сохранены в постоянное хранилище.
Контекст отслеживает состояние каждого управляемого объекта, которым он владеет. Объекты могут находиться в следующих состояниях:
Изменения, сделанные в контексте, не сохраняются автоматически. Ты должен явно вызвать save(), чтобы сохранить их:
do {
try context.save()
} catch {
print("Save failed: \(error)")
}
До вызова save() все изменения существуют только в памяти.
Распространённый паттерн — использовать несколько контекстов для разных целей:
mainQueueConcurrencyType — используется для UI-операций на главном потокеprivateQueueConcurrencyType — используется для фоновых операций, таких как импорт больших наборов данныхЭто предотвращает блокировку UI тяжёлыми операциями.
NSManagedObjectContext — это по сути единица работы: он группирует связанные изменения вместе и либо фиксирует их все сразу, либо отбрасывает — что делает его предсказуемым и безопасным способом управления данными в Core Data.
NSManagedObjectContext автоматически сохраняет изменения в persistent store сразу же при изменении любого managed object, без необходимости явного вызова save().
Новый — ещё не проверен сообществом
Вы