NSEntityDescription
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSFastEnumeration
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSFastEnumeration
-
NSObject
Оператор импорта
Swift
import CoreData
Objective C
@import CoreData;
Доступность
Доступный в iOS 3.0 и позже.
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
}
-
name
СвойствоИмя объекта получателя.
Специальные замечания
Если модель получателя использовалась менеджером по графу объектов, установка имени повышает исключение.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
managedObjectModel
СвойствоМодель управляемого объекта, с которой связан получатель. (только для чтения)
Объявление
Swift
unowned(unsafe) var managedObjectModel: NSManagedObjectModel { get }
Objective C
@property(readonly, assign) NSManagedObjectModel *managedObjectModel
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
setEntities:
(NSManagedObjectModel
)setEntities:forConfiguration:
: (NSManagedObjectModel
) -
managedObjectClassName
СвойствоИмя класса, представляющего объект получателя.
Объявление
Swift
var managedObjectClassName: String
Objective C
@property(copy) NSString *managedObjectClassName
Обсуждение
Класс, указанный
name
долженNSManagedObject
или подклассNSManagedObject
.Специальные замечания
Если модель получателя использовалась менеджером по графу объектов, установка имени класса повышает исключение.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
renamingIdentifier
СвойствоИдентификатор переименования для получателя.
Объявление
Swift
var renamingIdentifier: String
Objective C
@property(copy) NSString *renamingIdentifier
Обсуждение
Идентификатор переименования используется для разрешения конфликтов имен между моделями. Когда создание отображающейся модели между двумя моделями управляемого объекта, исходным объектом и целевым объектом, совместно использующими тот же идентификатор, указывает, что отображение объекта должно быть сконфигурировано для миграции от источника до места назначения.
Если Вы не установите это значение, то идентификатор возвратит имя объекта.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
abstract
СвойствоБулево значение, указывающее, представляет ли получатель абстрактный объект.
Объявление
Swift
var abstract: Bool
Objective C
@property(getter=isAbstract) BOOL abstract
Возвращаемое значение
YES
true
если получатель представляет абстрактный объект, иначеNO
false
.Обсуждение
YES
true
если получатель представляет абстрактный объект, иначеNO
false
. Абстрактный объект мог бы быть Формой, с конкретными подобъектами, такими как Прямоугольник, Треугольник и Круг.Специальные замечания
Установка, является ли объект абстрактными повышениями исключение, если модель получателя использовалась менеджером по графу объектов.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 8.0 и позже.
-
userInfo
СвойствоПользовательский информационный словарь получателя.
Объявление
Swift
var userInfo: [NSObject : AnyObject]?
Objective C
@property(nonatomic, strong) NSDictionary *userInfo
Специальные замечания
Если модель получателя использовалась менеджером по графу объектов, установка пользовательского информационного словаря повышает исключение.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
subentitiesByName
СвойствоСловарь, содержащий подобъекты получателя. (только для чтения)
Объявление
Swift
var subentitiesByName: [NSObject : AnyObject]? { get }
Objective C
@property(readonly, copy) NSDictionary *subentitiesByName
Возвращаемое значение
Ключи в словаре являются именами подобъекта, соответствующие значения являются экземплярами
NSEntityDescription
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
subentities
СвойствоМассив, содержащий подобъекты получателя.
Обсуждение
Подобъекты являются экземплярами
NSEntityDescription
.Специальные замечания
Если модель получателя использовалась менеджером по графу объектов, установка подобъектов повышает исключение.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
superentity
СвойствоСуперобъект получателя. (только для чтения)
Объявление
Swift
unowned(unsafe) var superentity: NSEntityDescription? { get }
Objective C
@property(readonly, assign) NSEntityDescription *superentity
Обсуждение
Если получатель не имеет никакого суперобъекта, возвратов
nil
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Возвращает булево значение, указывающее, является ли получатель подобъектом другого данного объекта.
Объявление
Swift
func isKindOfEntity(_
entity
: NSEntityDescription) -> BoolObjective C
- (BOOL)isKindOfEntity:(NSEntityDescription *)
entity
Параметры
entity
Объект.
Возвращаемое значение
YES
true
если получатель является подобъектомentity
, иначеNO
false
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
propertiesByName
СвойствоСловарь, содержащий свойства получателя. (только для чтения)
Объявление
Swift
var propertiesByName: [NSObject : AnyObject] { get }
Objective C
@property(readonly, copy) NSDictionary *propertiesByName
Обсуждение
Ключи в словаре являются именами свойства, и значения являются экземплярами
NSAttributeDescription
и/илиNSRelationshipDescription
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
properties
СвойствоМассив, содержащий свойства получателя.
Обсуждение
Элементы в массиве являются экземплярами
NSAttributeDescription
,NSRelationshipDescription
, и/илиNSFetchedPropertyDescription
.Специальные замечания
Если модель получателя использовалась менеджером по графу объектов, установка свойств повышает исключение.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
attributesByName
СвойствоАтрибуты получателя в словаре. (только для чтения)
Объявление
Swift
var attributesByName: [NSObject : AnyObject] { get }
Objective C
@property(readonly, copy) NSDictionary *attributesByName
Обсуждение
Ключи в словаре являются названиями атрибута, и значения являются экземплярами
NSAttributeDescription
. .Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
relationshipsByName
СвойствоОтношения получателя в словаре. (только для чтения)
Объявление
Swift
var relationshipsByName: [NSObject : AnyObject] { get }
Objective C
@property(readonly, copy) NSDictionary *relationshipsByName
Обсуждение
Ключи в словаре являются именами отношения, и значения являются экземплярами
NSRelationshipDescription
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает массив, содержащий отношения получателя, где описание объекта отношения является данным объектом.
Объявление
Swift
func relationshipsWithDestinationEntity(_
entity
: NSEntityDescription) -> [AnyObject]Objective C
- (NSArray *)relationshipsWithDestinationEntity:(NSEntityDescription *)
entity
Параметры
entity
Описание объекта.
Возвращаемое значение
Массив, содержащий отношения получателя, где описание объекта отношения
entity
. Элементы в массиве являются экземплярамиNSRelationshipDescription
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает объект с указанным именем от модели управляемого объекта, связанной с персистентным координатором хранилища контекста указанного управляемого объекта.
Объявление
Swift
class func entityForName(_
entityName
: String, inManagedObjectContextcontext
: 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
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
insertNewObjectForEntityForName (_: inManagedObjectContext:) + insertNewObjectForEntityForName:inManagedObjectContext:
Создает, конфигурирует и возвращает экземпляр класса для объекта с именем.
Объявление
Swift
class func insertNewObjectForEntityForName(_
entityName
: String, inManagedObjectContextcontext
: NSManagedObjectContext) -> AnyObjectObjective 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
Доступность
Доступный в iOS 3.0 и позже.
-
versionHash
СвойствоХеш версии для получателя. (только для чтения)
Объявление
Swift
@NSCopying var versionHash: NSData { get }
Objective C
@property(readonly, copy) NSData *versionHash
Обсуждение
Хеш версии используется для однозначного определения объекта на основе набора и конфигурации свойств для объекта. Хеш версии использует только значения, влияющие на персистентность данных и определяемого пользователем
versionHashModifier
значение. (Значения, влияющие на персистентность: имя объекта, хеш версии суперобъекта (если есть), если объект абстрактен, и все хеши версии для свойств.) Это значение сохранено как часть информации о версии в метаданных для хранилищ, использующих этот объект, а также определение объекта, вовлеченного вNSEntityMapping
объект.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
versionHashModifier
СвойствоМодификатор хеша версии для получателя.
Объявление
Swift
var versionHashModifier: String?
Objective C
@property(copy) NSString *versionHashModifier
Обсуждение
Это значение включено в хеш версии для объекта. Вы используете его, чтобы отметить или обозначить объект, как являющийся различной «версией», чем другой, даже если все значения, влияющие на персистентность, равны. (Такое различие важно в случаях, где, например, структура объекта неизменна, но изменились формат или содержание данных.)
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Возвращает копию получателя
Объявление
Objective C
- (id)copy
Возвращаемое значение
Копия получателя.
Специальные замечания
NSEntityDescription
’ s реализацияcopy
возвращает объект, таким образом что:[[entity copy] isEqual:entity] == NO
Вы не должны, поэтому, использовать объект в качестве ключа в словаре (см. Используя Описания Объекта в Словарях).
-
compoundIndexes
СвойствоСоставной объект индексирует для объекта как массив массивов.
Объявление
Swift
var compoundIndexes: [AnyObject]?
Objective C
@property(strong) NSArray *compoundIndexes
Обсуждение
Массивы, содержавшиеся в возвращенном массиве, содержат экземпляры
NSAttributeDescription
,NSRelationshipDescription
это представляет свойства объекта, илиNSString
то соответствие имя атрибутов или отношения объекта.Составные индексы только используются хранилищами, исходно поддерживающими составные индексы — установка их является только консультацией. Индексы применяются ко всей иерархии наследования.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 5.0 и позже.