CoreData

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Core Dataфреймворк от компании Apple, встроенный в операционную систему iOS, MacOS, который позволяет разработчику взаимодействовать с базой данных. Был представлен компанией Apple c анонсом Mac OS X 10.4 Tiger и iOS с iPhone SDK 3.0. Позволяет данным быть организованными в Сущность-Атрибут-Значение (EAV). Управление данными может быть осуществлено с помощью манипуляций сущностей и их взаимосвязей.

  • Managed Object Context — компонент с которым идет взаимодействие, каждый раз, когда идет сохранение или перезапись;
  • Persistent Store Coordinator — выполняет цель хранения данных;
  • Managed Object Model — модель БД;
  • Persistent Store — репозиторий, где хранятся данные;

Использование

[править | править код]

Сore Data описывает данные, которые хранятся в iOS приложении, код может манипулировать для сохранения и записи данных в приложении. Модель БД создается в Interface Builder. Код пишется на Objective-C или Swift. Core Data организован в огромные классы.


Суть работы фреймворка, как внутренней БД проста: создание модели, и при добавлении новых элементов сохранение с помощью метода saveContext(); в модель с помощью ниже приведенных методов в таблице.

Приложение не может работать без БД, так как при выходе из него данные будут утрачены. Это и является главной целью данного фреймворка — хранение данных, есть так же и похожие: Realm, SQLite. Ниже приведена таблица с описанием структуры фреймворка.

Имя Использование Ключевые методы:
NSManagedObject
  • A "row" of data
  • Access attributes
  • -entity
  • -valueForKey
  • -setValue
  • forKey
NSManagedObjectContext
    • Changes
    • Actions
  • setFetchRequestTemplate
 forName;
fetchRequestTemplateForName
NSPredicate
  • Specify query
  • predicateWithFormat
  • evaluateWithObject
NSManagedObjectModel
  • Structure
  • Storage
  • -setFetchRequestTemplate:
 forName
  • fetchRequestTemplateForName
  • -entities
NSFetchRequest
  • Request data
  • -setPredicate
  • setEntity
  • -setFetchBatchSize

Формат хранения

[править | править код]

Core Data может конвертировать данные в XML, бинарный код, SQLite для хранения. Core Data схемы стандартизированы.

Если на компьютере не установлен Xcode, то возможность прочитать модель данных есть.

Основная часть фреймворка была написана во время работы Стива Джобса в компании NeXT, Enterprise Objects Framework (EOF) на языке Objective-C.

EOF был специально разработан на object-relational mapping для SQL database двигателей как Microsoft SQL Server and Oracle. Существует много аналогов данного фреймворка таких как: Realm, SQLite.

На сегодняшний день этот фреймворк является самым главным в компании и пользуется огромным спросом среди разработчиков.