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

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

Разработчик

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

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

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

NSEntityDescription

NSEntityDescription объект описывает объект в Базовых Данных. Объекты к управляемым объектам что Class к id, или — для использования аналогии базы данных — что таблицы к строкам. Экземпляр указывает имя объекта, его свойства (его атрибуты и отношения, выраженные экземплярами NSAttributeDescription и NSRelationshipDescription) и класс, которым это представлено.

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

  • Имя

  • Имя класса управляемых объектов

    (Если объект не имеет никакого имени класса управляемых объектов, он принимает значение по умолчанию к NSManagedObject.)

Вы обычно определяете объекты в управляемом объекте modelusing инструмент моделирования данных в XCode. NSEntityDescription объекты прежде всего используются Базовой Платформой Данных для отображения записей в персистентном хранилище к управляемым объектам в приложении. Вы вряд ли будете взаимодействовать с ними непосредственно, если Вы не будете в частности работать с моделями. Как другие главные классы моделирования, NSEntityDescription предоставляет Вам пользовательский словарь, в котором можно хранить любую специализированную информацию, связанную с объектом.

Редактирование описаний объекта

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

Если Вы хотите создать иерархию объекта, необходимо рассмотреть соответствующий API. Можно только установить подобъекты объекта (см. subentities), Вы не можете установить суперобъект объекта непосредственно. Для установки суперобъекта для данного объекта необходимо поэтому установить массив подобъектов на том супер объекте и включать текущий объект в тот массив. Так, иерархия объекта должна быть создана сверху вниз.

Используя описания объекта в словарях

NSEntityDescription copy метод возвращает объект, таким образом что

  • [[entity copy] isEqual:entity] == NO

С тех пор NSDictionary копирует его ключи и требует, чтобы ключи оба соответствовали NSCopying протокол и имеет свойство это copy возвращает объект для который [[object copy] isEqual:object] истина, Вы не должны использовать объекты в качестве ключей в словаре. Вместо этого необходимо или использовать имя объекта в качестве ключа или использовать таблицу карты (NSMapTable) с сохраняют обратные вызовы.

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

NSEntityDescription поддержки NSFastEnumeration протокол. Можно использовать это для перечисления по свойствам объекта, как проиллюстрировано в следующем примере:

  • NSEntityDescription *anEntity = ...;
  • for (NSPropertyDescription *property in anEntity) {
  • // property is each instance of NSPropertyDescription in anEntity in turn
  • }

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


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


Swift

import CoreData

Objective C

@import CoreData;

Доступность


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

    Имя объекта получателя.

    Объявление

    Swift

    var name: String?

    Objective C

    @property(copy) NSString *name

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Модель управляемого объекта, с которой связан получатель. (только для чтения)

    Объявление

    Swift

    unowned(unsafe) var managedObjectModel: NSManagedObjectModel { get }

    Objective C

    @property(readonly, assign) NSManagedObjectModel *managedObjectModel

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    setEntities: (NSManagedObjectModel)
    setEntities:forConfiguration:: (NSManagedObjectModel)

  • Имя класса, представляющего объект получателя.

    Объявление

    Swift

    var managedObjectClassName: String

    Objective C

    @property(copy) NSString *managedObjectClassName

    Обсуждение

    Класс, указанный name должен NSManagedObject или подкласс NSManagedObject.

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var renamingIdentifier: String

    Objective C

    @property(copy) NSString *renamingIdentifier

    Обсуждение

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

    Если Вы не установите это значение, то идентификатор возвратит имя объекта.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    var abstract: Bool

    Objective C

    @property(getter=isAbstract) BOOL abstract

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

    YEStrue если получатель представляет абстрактный объект, иначе NOfalse.

    Обсуждение

    YEStrue если получатель представляет абстрактный объект, иначе NOfalse. Абстрактный объект мог бы быть Формой, с конкретными подобъектами, такими как Прямоугольник, Треугольник и Круг.

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • userInfo userInfo Свойство

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

    Объявление

    Swift

    var userInfo: [NSObject : AnyObject]?

    Objective C

    @property(nonatomic, strong) NSDictionary *userInfo

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Словарь, содержащий подобъекты получателя. (только для чтения)

    Объявление

    Swift

    var subentitiesByName: [NSObject : AnyObject] { get }

    Objective C

    @property(readonly, copy) NSDictionary *subentitiesByName

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Массив, содержащий подобъекты получателя.

    Объявление

    Swift

    var subentities: [AnyObject]

    Objective C

    @property(strong) NSArray *subentities

    Обсуждение

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

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

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • Суперобъект получателя. (только для чтения)

    Объявление

    Swift

    unowned(unsafe) var superentity: NSEntityDescription? { get }

    Objective C

    @property(readonly, assign) NSEntityDescription *superentity

    Обсуждение

    Если получатель не имеет никакого суперобъекта, возвратов nil.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    func isKindOfEntity(_ entity: NSEntityDescription) -> Bool

    Objective C

    - (BOOL)isKindOfEntity:(NSEntityDescription *)entity

    Параметры

    entity

    Объект.

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

    YEStrue если получатель является подобъектом entity, иначе NOfalse.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

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

    Объявление

    Swift

    class func entityForName(_ entityName: String, inManagedObjectContext context: NSManagedObjectContext) -> NSEntityDescription?

    Objective C

    + (NSEntityDescription *)entityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context

    Параметры

    entityName

    Имя объекта.

    context

    Контекст управляемого объекта для использования. Не должен быть nil.

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

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

    Обсуждение

    Повышения NSInternalInconsistencyException если context nil.

    Этот метод функционально эквивалентен следующему примеру кода.

    • NSManagedObjectModel *managedObjectModel = [[context persistentStoreCoordinator] managedObjectModel];
    • NSEntityDescription *entity = [[managedObjectModel entitiesByName] objectForKey:entityName];
    • return entity;

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    entitiesByName

  • Создает, конфигурирует и возвращает экземпляр класса для объекта с именем.

    Объявление

    Swift

    class func insertNewObjectForEntityForName(_ entityName: String, inManagedObjectContext context: NSManagedObjectContext) -> AnyObject

    Objective C

    + (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context

    Параметры

    entityName

    Имя объекта.

    context

    Контекст управляемого объекта для использования.

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

    Новое, автовыпущенный, полностью сконфигурированный экземпляр класса для объекта называют entityName. Экземпляру установили его описание объекта и вставляется это в context.

    Обсуждение

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

    • NSManagedObjectModel *managedObjectModel =
    • [[context persistentStoreCoordinator] managedObjectModel];
    • NSEntityDescription *entity =
    • [[managedObjectModel entitiesByName] objectForKey:entityName];
    • NSManagedObject *newObject = [[NSManagedObject alloc]
    • initWithEntity:entity insertIntoManagedObjectContext:context];
    • return newObject;

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

  • versionHash versionHash Свойство

    Хеш версии для получателя. (только для чтения)

    Объявление

    Swift

    @NSCopying var versionHash: NSData { get }

    Objective C

    @property(readonly, copy) NSData *versionHash

    Обсуждение

    Хеш версии используется для однозначного определения объекта на основе набора и конфигурации свойств для объекта. Хеш версии использует только значения, влияющие на персистентность данных и определяемого пользователем versionHashModifier значение. (Значения, влияющие на персистентность: имя объекта, хеш версии суперобъекта (если есть), если объект абстрактен, и все хеши версии для свойств.) Это значение сохранено как часть информации о версии в метаданных для хранилищ, использующих этот объект, а также определение объекта, вовлеченного в NSEntityMapping объект.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – versionHashModifier

  • Модификатор хеша версии для получателя.

    Объявление

    Swift

    var versionHashModifier: String?

    Objective C

    @property(copy) NSString *versionHashModifier

    Обсуждение

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

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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

    См. также

    – versionHash

  • Возвращает копию получателя

    Объявление

    Objective C

    - (id)copy

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

    Копия получателя.

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

    NSEntityDescription’€˜ s реализация copy возвращает объект, таким образом что:

    • [[entity copy] isEqual:entity] == NO

    Вы не должны, поэтому, использовать объект в качестве ключа в словаре (см. Используя Описания Объекта в Словарях).

  • compoundIndexes compoundIndexes Свойство

    Составной объект индексирует для объекта как массив массивов.

    Объявление

    Swift

    var compoundIndexes: [AnyObject]?

    Objective C

    @property(strong) NSArray *compoundIndexes

    Обсуждение

    Массивы, содержавшиеся в возвращенном массиве, содержат экземпляры NSAttributeDescription, NSRelationshipDescription это представляет свойства объекта, или NSString то соответствие имя атрибутов или отношения объекта.

    Составные индексы только используются хранилищами, исходно поддерживающими составные индексы — установка их является только консультацией. Индексы применяются ко всей иерархии наследования.

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

    Objective C

    @import CoreData;

    Swift

    import CoreData

    Доступность

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