В чем разница между этими тремя классами [NSManagedObject , NSManagedObjectContext , NSManagedObjectModel ]
основных данных и как мы можем описать их наиболее простым способом?
Разница между NSManagedObject, NSManagedObjectContext и NSManagedObjectModel
Ответы (5)
В терминах базы данных:
- NSManagedObject = строка
- NSManagedObjectContext = транзакция
- NSManagedObjectModel = схема
Конечно, Core Data - это не база данных.
NSManagedObjectContext
обертывает изменяемый слой вокруг экземпляра NSManagedObjectModel
.
- person Abhishek Bedi; 05.02.2013
Из руководства по программированию CoreData:
Вы можете думать о managed object context
как о интеллектуальной записной книжке. Когда вы извлекаете объекты из постоянного хранилища, вы переносите временные копии в блокнот, где они формируют граф объектов (или коллекцию графов объектов). Затем вы можете изменить эти объекты по своему усмотрению. Однако, если вы не сохраните эти изменения, постоянное хранилище останется неизменным.
NSManagedObjects представляют данные, хранящиеся в базе данных. Вы можете думать о них как о модельных объектах.
NSManagedObjectContext позволяет вставлять, сохранять и извлекать (с помощью NSFetchRequest) NSManagedObjects из базы данных ».
контекст: вы можете указать места, где находятся ваши объекты, после того, как вы прочитали его или перед тем, как вставить его в базу данных
чтобы узнать больше, прочтите эти темы вкратце и поймите разницу
Как скопировать или переместить NSManagedObject из одного контекста в другой?
http://www.cimgf.com/2011/01/07/passing-around-a-nsmanagedobjectcontext-on-the-iphone/
Сохраняет ли NSManagedObject свой NSManagedObjectContext?
NSManagedObject наследуется от объекта и добавляет методы, необходимые для управления основными данными.
Контекст - это место, где сохраняются объекты, которыми управляют основные данные, что происходит, когда вы берете объект из базы данных или создаете для сохранения в него.
Объектная модель описывает схему общих данных для постоянного хранилища.