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

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


person iMash    schedule 11.05.2012    source источник


Ответы (5)


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

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

Конечно, Core Data - это не база данных.

person Stephen Darlington    schedule 11.05.2012
comment
Спасибо. Это короткий, но отличный ответ. Это может быть самый простой способ понять основные данные, если мы уже работали с sql. Пожалуйста, предоставьте более подробную информацию или ссылку на любую статью, где такой тип описания, и мы можем лучше узнать его с точки зрения SQL. - person iMash; 11.05.2012
comment
Контекст больше похож на клиента или соединение, чем на транзакцию. - person paulmelnikow; 17.05.2012
comment
Класс NSManagedObjectContext обертывает изменяемый слой вокруг экземпляра NSManagedObjectModel. - person Abhishek Bedi; 05.02.2013
comment
@DeepakThakur sqlite - не единственный бэкэнд для Core Data. Вы также можете использовать двоичный файл, XML, в памяти или даже написать свой собственный (только что видел один, используя Царство). Сказав это, они означают, что если вы используете его так же, как и базу данных SQL, у вас, вероятно, возникнут проблемы. И это правда, независимо от базовой технологии. - person Stephen Darlington; 26.02.2016

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

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

person Abhishek Bedi    schedule 05.02.2013
comment
- Хорошо, а что насчет NSManagedObject? - person AsifHabib; 06.01.2021

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

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

person Farooque Azam    schedule 06.12.2018

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

чтобы узнать больше, прочтите эти темы вкратце и поймите разницу

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

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

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

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

person Saad    schedule 11.05.2012

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

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

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

person Jpellat    schedule 11.05.2012