Разница между NSManagedObject, NSManagedObjectContext и NSManagedObjectModel

В чем разница между этими тремя классами [NSManagedObject , NSManagedObjectContext , NSManagedObjectModel ] основных данных и как мы можем описать это проще всего?

Ответ 1

В терминах базы данных:

  • NSManagedObject = строка
  • NSManagedObjectContext = транзакция
  • NSManagedObjectModel = схема

Конечно, Core Data не является базой данных.

Ответ 2

Из руководства по программированию CoreData:

Вы можете придумать managed object context как интеллектуальную блокнот. Когда вы извлекаете объекты из постоянного хранилища, вы привозите временные копии на блокнот, где они образуют граф объектов (или набор графиков объектов). Затем вы можете изменить те объекты, которые вам нравятся. Если вы фактически не сохранили эти изменения, постоянное хранилище остается неизменным.

Ответ 3

context: вы можете указать места, где ваши объекты находятся после того, как вы прочитали его или перед тем, как вставить его в db

читайте эти потоки и понимайте разницу

Добавить экземпляр NSManagedObject в NSManagedObjectContext, обновить тот же экземпляр не удалось

Как скопировать или переместить NSManagedObject из одного контекста в другой?

http://www.cimgf.com/2011/01/07/passing-around-a-nsmanagedobjectcontext-on-the-iphone/

Сохраняет ли NSManagedObject свой NSManagedObjectContext?

Ответ 4

Объект NSManagedObject из объекта и добавляет методы, необходимые для управления основными данными.

Контекст - это то, где объекты, которые управляются основными данными, сохраняются, что происходит, когда вы берете объект из базы данных или создаете для его сохранения

Объектная модель описывает схему coredata для постоянного хранилища

Ответ 5

NSManagedObjects представляют данные, хранящиеся в базе данных. Вы можете думать о них как о объектах модели.

NSManagedObjectContext позволяет вставлять, сохранять и извлекать (используя NSFetchRequest) NSManagedObjects из базы данных. "