Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CoreData ссылка класса NSManagedObjectModel

Опции
Развертывание Target:

На этой странице
Язык:

NSManagedObjectModel

NSManagedObjectModel объект описывает схему — набор объектов (модели данных), которые Вы используете в своем приложении.

Модель содержит один или больше NSEntityDescription объекты, представляющие объекты в схеме. Каждый NSEntityDescription объект имеет объекты описания свойства (экземпляры подклассов NSPropertyDescription) это представляет свойства (или поля) объекта в схеме. Базовая платформа Данных использует это описание несколькими способами:

  • Ограничение создания UI в Интерфейсном Разработчике

  • Во время выполнения проверка атрибута и отношения оценивает

  • Отображение между управляемыми объектами и базой данных или основанной на файле схемой для объектной персистентности.

Модель управляемого объекта поддерживает отображение между каждым из его объектов объекта и соответствующим классом управляемых объектов для использования с персистентными механизмами хранения в Базовой Платформе Данных. Можно определить объект для определенного управляемого объекта с entity метод.

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

Загрузка файла модели

Файлы модели управляемого объекта обычно хранятся в проекте или платформе. Для загрузки модели Вы предоставляете URL конструктору. Обратите внимание на то, что загрузка модели не имеет эффекта загрузки всех ее объектов.

Сохраненные запросы выборки

Часто имеет место, что в Вашем приложении Вы хотите овладеть набором объектов та доля функции вместе. Иногда можно определить те функции (значения свойств) заранее; иногда необходимо быть в состоянии предоставить значения во время выполнения. Например, Вы могли бы хотеть быть в состоянии получить все фильмы, принадлежавшие Pixar; альтернативно Вы могли бы хотеть быть в состоянии получить все фильмы, заработавшие больше, чем сумма, указанная пользователем во время выполнения.

Запросы выборки часто предопределяются в модели управляемого объекта как шаблоны. Они позволяют Вам предопределять именованные запросы и их параметры в модели. Обычно они содержат переменные, которыми нужно заменить во время выполнения. NSManagedObjectModel обеспечивает API для получения сохраненного запроса выборки по имени, и выполнять подстановку переменных — посмотрите fetchRequestTemplateForName: и fetchRequestFromTemplateWithName:substitutionVariables:. Можно создать шаблоны запроса выборки программно и связать их с использованием модели setFetchRequestTemplate:forName:; обычно, однако, Вы определяете их использующий средство проектирования XCode.

Конфигурации

Иногда модель — особенно один в платформе — может использоваться в различных ситуациях, и можно хотеть указать различные наборы объектов, которые будут использоваться в различных ситуациях. Могли бы, например, быть определенные объекты, которые должны только быть доступными, если у пользователя есть административные привилегии. Для поддержки этого требования модель может иметь больше чем одну конфигурацию. Каждую конфигурацию называют и имеет связанный набор объектов. Наборы могут наложиться. Вы устанавливаете конфигурации программно с помощью setEntities:forConfiguration: или использование средства проектирования XCode, и получает объекты для данного использования имени конфигурации entitiesForConfiguration:.

Изменение моделей

Так как модель описывает структуру данных в персистентном хранилище, изменяя любые части модели, изменяющейся, схема представляет его несовместимый с (и настолько неспособный открыться) хранилища, которые это ранее создало. При изменении схемы поэтому необходимо переместить данные в существующих хранилищах к новой версии (см. Базовое Руководство по программированию Управления версиями и Миграции данных Модели данных). Например, если Вы добавите новый объект или новый атрибут к существующему объекту, то Вы не будете в состоянии открыть старые хранилища; если Вы добавите ограничение проверки или установите новое значение по умолчанию для атрибута, то Вы будете в состоянии открыть старые хранилища.

Редактирование моделей программно

Модели управляемого объекта доступны для редактирования, пока они не используются менеджером по графу объектов (контекст управляемого объекта или персистентный координатор хранилища). Это позволяет Вам создавать или изменять их динамично. Однако, как только модель используется, она не должна быть изменена. Это осуществляется во время выполнения — когда диспетчер объектов сначала выбирает данные с помощью модели, весь, что модель становится недоступной для редактирования. Любая попытка видоизменить модель или любой из ее подобъектов после той точки заставляет исключение быть брошенным. Если необходимо изменить модель, использующуюся, создайте копию, измените копию, и затем отбросьте объекты со старой моделью.

Быстрое перечисление

В OS X v10.5 и позже и на iOS, NSManagedObjectModel поддержки NSFastEnumeration протокол. Можно использовать это для перечисления по объектам модели, как проиллюстрировано в следующем примере:

  • NSManagedObjectModel *aModel = ...;
  • for (NSEntityDescription *entity in aModel) {
  • // entity is each instance of NSEntityDescription in aModel in turn
  • }

Наследование


Оператор импорта


Swift

import CoreData

Objective C

@import CoreData;

Доступность


Доступный в OS X v10.4 и позже.
  • Инициализирует получатель с помощью файла модели в указанном URL.

    Объявление

    Swift

    convenience init?(contentsOfURL url: NSURL)

    Objective C

    - (instancetype)initWithContentsOfURL:(NSURL *)url

    Параметры

    url

    Объект URL указание расположения файла модели.

    Возвращаемое значение

    Модель управляемого объекта инициализировала использование файла в url.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

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

    Объявление

    Swift

    class func mergedModelFromBundles(_ bundles: [AnyObject]?) -> NSManagedObjectModel?

    Objective C

    + (NSManagedObjectModel *)mergedModelFromBundles:(NSArray *)bundles

    Параметры

    bundles

    Массив экземпляров NSBundle искать. Если Вы указываете nil, тогда основной пакет ищется.

    Возвращаемое значение

    Модель, создаваемая путем слияния всех моделей, найденных в bundles.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвращает объединенную модель из указанного массива для получения информации о версии в предоставленных метаданных.

    Объявление

    Swift

    class func mergedModelFromBundles(_ bundles: [AnyObject]?, forStoreMetadata metadata: [NSObject : AnyObject]) -> NSManagedObjectModel?

    Objective C

    + (NSManagedObjectModel *)mergedModelFromBundles:(NSArray *)bundles forStoreMetadata:(NSDictionary *)metadata

    Параметры

    bundles

    Массив пакетов.

    metadata

    Словарь, содержащий информацию о версии от метаданных для персистентного хранилища.

    Возвращаемое значение

    Модель управляемого объекта раньше создавала хранилище для метаданных. Если модель не может быть создана для соответствия информации о версии, указанной metadata, возвраты nil.

    Обсуждение

    Этот метод является компаньоном к mergedModelFromBundles:.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.5 и позже.

  • Создает единственную модель из массива существующих моделей.

    Объявление

    Swift

    init?(byMergingModels models: [AnyObject]?) -> NSManagedObjectModel

    Objective C

    + (NSManagedObjectModel *)modelByMergingModels:(NSArray *)models

    Параметры

    models

    Массив экземпляров NSManagedObjectModel.

    Возвращаемое значение

    Единственная модель, сделанная путем объединения моделей в models.

    Обсуждение

    Вы используете этот метод для объединения многоуровневых моделей (обычно от различных платформ) в одну.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвраты, для получения информации о версии в данных метаданных, модель объединилась от данного массива моделей.

    Объявление

    Swift

    init?(byMergingModels models: [AnyObject], forStoreMetadata metadata: [NSObject : AnyObject]) -> NSManagedObjectModel

    Objective C

    + (NSManagedObjectModel *)modelByMergingModels:(NSArray *)models forStoreMetadata:(NSDictionary *)metadata

    Параметры

    models

    Массив экземпляров NSManagedObjectModel.

    metadata

    Словарь, содержащий информацию о версии от метаданных для персистентного хранилища.

    Возвращаемое значение

    Объединенная модель от models для получения информации о версии в metadata. Если модель не может быть создана для соответствия информации о версии в metadata, возвраты nil.

    Обсуждение

    Это - сопутствующий метод к mergedModelFromBundles:forStoreMetadata:.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.5 и позже.

  • объекты объекты Свойство

    Объекты в получателе.

    Объявление

    Swift

    var entities: [AnyObject]

    Objective C

    @property(strong) NSArray *entities

    Обсуждение

    Объекты являются экземплярами NSEntityDescription.

    Специальные замечания

    Если объектная модель использовалась менеджером по графу объектов, установка объектов для объектной модели повышает исключение.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • entitiesByName entitiesByName Свойство

    Объекты получателя, включенного по имени. (только для чтения)

    Объявление

    Swift

    var entitiesByName: [NSObject : AnyObject] { get }

    Objective C

    @property(readonly, copy) NSDictionary *entitiesByName

    Обсуждение

    Объекты являются экземплярами NSEntityDescription.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Все доступные имена конфигурации получателя. (только для чтения)

    Объявление

    Swift

    var configurations: [AnyObject] { get }

    Objective C

    @property(readonly, strong) NSArray *configurations

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвращает объекты получателя для указанной конфигурации.

    Объявление

    Swift

    func entitiesForConfiguration(_ configuration: String?) -> [AnyObject]?

    Objective C

    - (NSArray *)entitiesForConfiguration:(NSString *)configuration

    Параметры

    configuration

    Имя конфигурации в получателе.

    Возвращаемое значение

    Массив, содержащий объекты получателя для конфигурации, указанной configuration.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Связывает указанные объекты с получателем с помощью данного имени конфигурации.

    Объявление

    Swift

    func setEntities(_ entities: [AnyObject], forConfiguration configuration: String)

    Objective C

    - (void)setEntities:(NSArray *)entities forConfiguration:(NSString *)configuration

    Параметры

    entities

    Массив экземпляров NSEntityDescription.

    configuration

    Имя для конфигурации.

    Специальные замечания

    Если получатель использовался менеджером по графу объектов, этот метод повышает исключение.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Словарь выборки получателя запрашивает шаблоны, включенные по имени. (только для чтения)

    Объявление

    Swift

    var fetchRequestTemplatesByName: [NSObject : AnyObject] { get }

    Objective C

    @property(readonly, copy) NSDictionary *fetchRequestTemplatesByName

    Обсуждение

    Если шаблон содержит предикат с переменными замены, необходимо вместо этого использовать fetchRequestFromTemplateWithName:substitutionVariables: создать новый запрос выборки.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.5 и позже.

  • Возвращает запрос выборки с указанным именем.

    Объявление

    Swift

    func fetchRequestTemplateForName(_ name: String) -> NSFetchRequest?

    Objective C

    - (NSFetchRequest *)fetchRequestTemplateForName:(NSString *)name

    Параметры

    name

    Строка, содержащая имя выборки, запрашивает шаблон.

    Возвращаемое значение

    Запрос выборки называют name.

    Обсуждение

    Если шаблон содержит переменные замены, необходимо вместо этого использовать fetchRequestFromTemplateWithName:substitutionVariables: создать новый запрос выборки.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвращает копию шаблона запроса выборки с переменными, которыми заменяют значения из словаря замен.

    Объявление

    Swift

    func fetchRequestFromTemplateWithName(_ name: String, substitutionVariables variables: [NSObject : AnyObject]) -> NSFetchRequest?

    Objective C

    - (NSFetchRequest *)fetchRequestFromTemplateWithName:(NSString *)name substitutionVariables:(NSDictionary *)variables

    Параметры

    name

    Строка, содержащая имя выборки, запрашивает шаблон.

    variables

    Словарь, содержащий пары ключ/значение, где ключи являются именами переменных, указанных в шаблоне; соответствующими значениями заменяют, прежде чем запрос выборки возвращается. Словарь должен обеспечить значения для всех переменных в шаблоне.

    Возвращаемое значение

    Копия выборки запрашивает шаблон с переменными, которыми заменяют значения от variables.

    Обсуждение

    variables словарь должен обеспечить значения для всех переменных. Если Вы хотите протестировать на нулевое значение, использовать [NSNull null].

    Этот метод обеспечивает обычный способ связать «абстрактно» определенный шаблон запроса выборки с конкретной выборкой. Для получения дополнительной информации при использовании этого метода, посмотрите Предикаты Создания.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Связывает указанный запрос выборки с получателем с помощью имени.

    Объявление

    Swift

    func setFetchRequestTemplate(_ fetchRequest: NSFetchRequest?, forName name: String)

    Objective C

    - (void)setFetchRequestTemplate:(NSFetchRequest *)fetchRequest forName:(NSString *)name

    Параметры

    fetchRequest

    Запрос выборки, обычно содержащий предикаты с переменными для замены.

    name

    Строка, указывающая имя шаблона запроса выборки.

    Обсуждение

    Для получения дополнительной информации при использовании этого метода, посмотрите Предикаты Создания.

    Специальные замечания

    Если получатель использовался менеджером по графу объектов, этот метод повышает исключение.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Словарь локализации получателя.

    Объявление

    Swift

    var localizationDictionary: [NSObject : AnyObject]?

    Objective C

    @property(strong) NSDictionary *localizationDictionary

    Обсуждение

    Таблица 1 описывает ключ и образец значения для словаря локализации.

    Таблица 1Key и образец значения для словаря локализации.

    Ключ

    Значение

    Примечание:

    «Entity/NonLocalizedEntityName»

    «LocalizedEntityName»

    «Property/NonLocalizedPropertyName/Entity/EntityName»

    «LocalizedPropertyName»

    (1)

    «Property/NonLocalizedPropertyName»

    «LocalizedPropertyName»

    «ErrorString/NonLocalizedErrorString»

    «LocalizedErrorString»

    (1) Поскольку свойства в различных объектах с тем же нелокализованным именем, но это должно иметь различные локализованные имена.

    Специальные замечания

    На OS X v10.4, localizationDictionary может возвратиться nil пока Базовые Данные лениво не загружают словарь в своих собственных целях (например, сообщая о локализованной ошибке).

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.4 и позже.

  • Возвращает булево значение, указывающее, совместима ли данная конфигурация в получателе с данными метаданными от персистентного хранилища.

    Объявление

    Swift

    func isConfiguration(_ configuration: String?, compatibleWithStoreMetadata metadata: [NSObject : AnyObject]?) -> Bool

    Objective C

    - (BOOL)isConfiguration:(NSString *)configuration compatibleWithStoreMetadata:(NSDictionary *)metadata

    Параметры

    configuration

    Имя конфигурации в получателе. Передача nil не указать конфигурацию.

    metadata

    Метаданные для персистентного хранилища.

    Возвращаемое значение

    YEStrue если конфигурация в получателе, указанном configuration совместимо с метаданными хранилища, данными metadata, иначе NOfalse.

    Обсуждение

    Этот метод сравнивает информацию о версии в метаданных хранилища с версиями объекта данной конфигурации. Для получения информации о конкретных различиях использовать entityVersionHashesByName и выполните сравнение объекта объектом.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.5 и позже.

  • Словарь версии хеширует для объектов в получателе, включенном именем объекта. (только для чтения)

    Объявление

    Swift

    var entityVersionHashesByName: [NSObject : AnyObject] { get }

    Objective C

    @property(readonly, copy) NSDictionary *entityVersionHashesByName

    Обсуждение

    Словарь информации о хеше версии используется Базовыми Данными для определения совместимости схемы.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.5 и позже.

  • Набор определенных разработчиками идентификаторов версии для получателя.

    Объявление

    Swift

    @NSCopying var versionIdentifiers: NSSet

    Objective C

    @property(copy) NSSet *versionIdentifiers

    Обсуждение

    Объединенные модели возвращают объединенный набор идентификаторов. Базовая платформа Данных не дает моделям идентификатор по умолчанию, и при этом она не зависит это значение во время выполнения. Для моделей, создаваемых в XCode, Вы устанавливаете это значение в образцовом инспекторе.

    Это значение предназначается, чтобы использоваться в качестве подсказки отладки, чтобы помочь Вам определить модели, объединенные для создания объединенной модели.

    Оператор импорта

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

    Доступный в OS X v10.5 и позже.