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.

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

Ссылки[править | править код]