Технологический обзор
Эта статья описывает основные характеристики, предоставленные Базовыми Данными, и обосновывает, почему для Вас могло бы быть подходяще принять технологию.
Базовые функции данных
Базовая платформа Данных обеспечивает обобщенные и автоматические решения общих задач, связанных с объектным жизненным циклом и управлением графом объектов, включая персистентность. Его функции включают:
Отслеживание изменений и поддержка отмены.
Базовые Данные обеспечивают встроенное управление отменой и восстановлением вне основного редактирования текста.
Обслуживание отношения.
Базовые Данные управляют распространением изменения, включая поддержание непротиворечивости отношений среди объектов.
Фьючерсы (сбой).
Базовые Данные могут сократить память наверху Вашей программы лениво загружаемыми объектами. Это также поддерживает частично осуществленные фьючерсы и совместное использование данных копии на записи.
Автоматическая проверка значений свойств.
Управляемые объекты базовых Данных расширяют стандартное значение ключа, кодирующее методы проверки, гарантирующие, чтобы отдельные значения легли в приемлемых диапазонах так, чтобы были целесообразны комбинации значений.
Миграция схемы.
Контакт с изменением в схеме Вашего приложения может быть трудным, и с точки зрения усилия по разработке и с точки зрения ресурсов во время выполнения. Инструменты миграции схемы базовых Данных упрощают задачу разрешения с изменениями схемы, и в некоторых случаях позволяют Вам выполнять чрезвычайно эффективную оперативную миграцию схемы.
Дополнительная интеграция с уровнем контроллера приложения для поддержки синхронизации пользовательского интерфейса.
Базовые Данные обеспечивают
NSFetchedResultsController
объект на iOS, и интегрируется с Привязкой Какао на OS X.Полный, автоматический, поддерживайте для кодирования значения ключа и наблюдения значения ключа.
В дополнение к синтезированию кодирования значения ключа и значения ключа, наблюдая совместимые методы доступа для атрибутов, Базовые Данные синтезируют надлежащие средства доступа набора для к - много отношений.
Группировка, фильтруя и организовывая данные в памяти и в пользовательском интерфейсе.
Автоматическая поддержка того, чтобы хранить объекты во внешних репозиториях данных.
Сложная компиляция запроса.
Вместо того, чтобы писать SQL, можно создать сложные запросы путем соединения
NSPredicate
объект с запросом выборки.NSPredicate
предоставляет поддержку для основных функций, связанных подзапросов и другого усовершенствованного SQL. С Базовыми Данными это также поддерживает надлежащий Unicode, осведомленный о локали поиск, сортировку и регулярные выражения.Политики слияния.
Базовые Данные обеспечивают созданный в отслеживании версии и оптимистической блокировке для поддержки автоматического разрешения конфликтов мультиписателя.
Почему необходимо использовать базовые данные?
Существует много причин, почему для Вас может быть подходяще использовать Базовые Данные. Одна из самых простых метрик - то, что с Базовыми Данными объем кода Вы пишете для поддержки уровня модели приложения, обычно 50% к на 70% меньшему, как измерено строками кода. Это прежде всего вследствие упомянутых выше функций — функции Core Data обеспечивают, опции, которые Вы не должны реализовать сами. Кроме того, они - функции, которые Вы не должны тестировать сами, и в частности Вы не должны оптимизировать себя.
Базовые Данные имеют зрелую кодовую базу, качество которой сохраняется через тесты модуля и ежедневно используется миллионами клиентов в большом разнообразии приложений. Платформа была высоко оптимизирована по нескольким выпускам. Это использует в своих интересах информацию, предоставленную в функциях во время выполнения и модели, не обычно используемых в коде прикладного уровня. Кроме того, в дополнение к обеспечению высокой безопасности и обработки ошибок, это предлагает лучшую масштабируемость памяти любого конкурирующего решения. Другими словами: Вы могли провести долгое время, тщательно обрабатывающее Ваше собственное решение, оптимизированное для определенной проблемной области, и не получить любое преимущество производительности перед тем, что Базовые Данные предлагают бесплатно для любого приложения.
В дополнение к преимуществам самой платформы Базовые Данные интегрируются хорошо с набором инструментальных средств OS X. Модельные средства проектирования позволяют Вам создавать свою схему графически, быстро и легко. Можно использовать шаблоны в Инструментальном приложении, чтобы измерить производительность Базовых Данных и отладить различные проблемы. На рабочем столе OS X Базовые Данные также интегрируются с Интерфейсным Разработчиком, чтобы позволить Вам создавать пользовательские интерфейсы из своей модели. Эти аспекты помогают далее сократить Ваше проектирование приложений, реализацию и циклы отладки.
Каковы базовые данные не
Дав обзор того, что Базовые Данные и делают, и почему это может быть полезно, также полезно исправить некоторые общие неправильные восприятия и утвердить, каково это не.
Базовые Данные не являются реляционной базой данных или системой управления реляционными базами данных (RDBMS).
Базовые Данные обеспечивают инфраструктуру для управления изменениями и для сохранения объектов к и получения их от хранения. Это может использовать SQLite в качестве одного из его персистентных типов хранилища. Это не находится, тем не менее, в и себя база данных. (Для подчеркивания этой мысли: Вы могли, например, использовать просто хранилище в памяти в своем приложении. Вы могли использовать Базовые Данные для отслеживания изменений и управления, но никогда фактически сохранить любые данные в файле.)
Базовые Данные не являются серебряной пулей.
Базовые Данные не устраняют необходимость записать код. Несмотря на то, что возможно создать сложное приложение исключительно с помощью инструмента моделирования данных XCode и Интерфейсного Разработчика, для большего количества реальных приложений необходимо будет все еще записать код.
Базовые Данные не полагаются на привязку Какао.
Базовые Данные интегрируются хорошо с привязкой Какао и эффективно используют те же технологии — и используемый вместе они могут значительно сократить объем кода, который необходимо записать — но возможно использовать Базовые Данные без привязки. Можно с готовностью создать Базовое Применение данных без пользовательского интерфейса (см. Базовое Учебное руководство по Утилите Данных).