NSManagedObject
NSManagedObject универсальный класс, реализующий все основное поведение, требуемое Базового объекта Модели данных. Не возможно использовать экземпляры прямых подклассов NSObject (или любой другой класс, не наследовавшийся от NSManagedObject) с контекстом управляемого объекта. Можно создать пользовательские подклассы NSManagedObject, несмотря на то, что это не всегда требуется. Если никакая пользовательская логика не необходима, полный граф объектов может быть сформирован с NSManagedObject экземпляры.
Управляемый объект связан с описанием объекта (экземпляр NSEntityDescription) это обеспечивает метаданные об объекте (включая имя объекта, который объект представляет и имена его атрибутов и отношений), и с контекстом управляемого объекта, отслеживающим изменения в графе объектов. Важно, чтобы управляемый объект был должным образом сконфигурирован для использования с Базовыми Данными. При инстанцировании управляемого объекта непосредственно необходимо вызвать определяемый инициализатор (initWithEntity:insertIntoManagedObjectContext:).
Хранение данных
В некотором отношении, NSManagedObject действия как словарь — это - универсальный контейнерный объект, эффективно обеспечивающий хранение для свойств, определенных его связанным NSEntityDescription объект. NSManagedObject предоставляет поддержку для диапазона общих типов для значений атрибута, включая строку, дату и число (см. NSAttributeDescription для полного изложения). Нет поэтому обычно никакой потребности определить переменные экземпляра в подклассах. Иногда, однако, Вы хотите использовать типы, не поддерживающиеся непосредственно, такие как цвета и структуры C. Например, в графическом приложении Вы могли бы хотеть определить Прямоугольный объект, имеющий цвет атрибутов и границы, которые являются экземпляром NSColor и NSRect структура соответственно. Для некоторых типов можно использовать поддающийся преобразованию атрибут для других, из которых это может потребовать, чтобы Вы создали подкласс NSManagedObject— посмотрите нестандартные персистентные атрибуты.
Сбой
Управляемые объекты обычно представляют данные, сохраненные в персистентном хранилище. В некоторых ситуациях управляемый объект может быть «отказом» — объект, значения свойств которого еще не были загружены из внешнего хранилища данных — дополнительную информацию см. в Faulting и Uniquing. При доступе к персистентным значениям свойств отказ «огни» и данные получен от хранилища автоматически. Это может быть сравнительно дорогим процессом (потенциально требующий цикла обработки к персистентному хранилищу), и можно хотеть избежать излишне запускать отказ.
Можно безопасно вызвать следующие методы на отказ, не заставляя его стрелять: isEqual:, hash, superclass, class, self, isProxy, isKindOfClass:, isMemberOfClass:, conformsToProtocol:, respondsToSelector:, description, managedObjectContext, entity, objectID, isInserted, isUpdated, isDeleted, faultingState, и isFault. С тех пор isEqual и hash не заставляйте отказ стрелять, управляемые объекты могут обычно помещаться в наборы, не запуская отказ. Отметьте, однако, что вызов методов кодирования значения ключа на объекте коллекции мог бы поочередно привести к вызову valueForKey: на управляемом объекте, который запустил бы отказ.
Несмотря на то, что description метод не заставляет отказ стрелять при реализации пользовательского description метод, получающий доступ к персистентным свойствам объекта, это заставит отказ стрелять. Вы строго отговорены переопределить description таким образом.
Разделение на подклассы примечаний
В сочетании с описанием объекта в модели управляемого объекта, NSManagedObject обеспечивает богатый набор способов поведения по умолчанию включая поддержку произвольных свойств и проверки значения. Существуют, однако, много причин, почему Вы могли бы хотеть разделить на подклассы NSManagedObject реализовать пользовательские опции; при этом, тем не менее, Вы не должны разрушать поведение Базовых Данных.
Методы Вы не Должны Переопределять
NSManagedObject самостоятельно настраивает много функций NSObject так, чтобы управляемые объекты могли быть должным образом интегрированы в Базовую Информационную инфраструктуру. Базовые Данные полагаются NSManagedObjectреализация следующих методов, которые Вы поэтому абсолютно не должны переопределять: primitiveValueForKey:, setPrimitiveValue:forKey:, isEqual:, hash, superclass, class, self, isProxy, isKindOfClass:, isMemberOfClass:, conformsToProtocol:, respondsToSelector:, managedObjectContext, entity, objectID, isInserted, isUpdated, isDeleted, и isFault, alloc, allocWithZone:, new, instancesRespondToSelector:, instanceMethodForSelector:, methodForSelector:, methodSignatureForSelector:, instanceMethodSignatureForSelector:, или isSubclassOfClass:.
Методы Вы Отговорены Переопределить
Как с любым классом, Вы строго отговорены переопределить методы наблюдения значения ключа такой как willChangeValueForKey: и didChangeValueForKey:withSetMutation:usingObjects:. Вы отговорены переопределить description— если этот метод запускает отказ во время работы отладки, результаты могут быть непредсказуемыми. Вы также отговорены переопределить initWithEntity:insertIntoManagedObjectContext:, или dealloc. Изменение значений в initWithEntity:insertIntoManagedObjectContext: метод не будет замечен контекстом и если Вы не осторожны, те изменения не могут быть сохранены. Большая часть настройки инициализации должна быть выполнена в одном из awake… методы. Если Вы действительно переопределяете initWithEntity:insertIntoManagedObjectContext:, необходимо удостовериться, что Вы придерживаетесь требований, определенных в описании метода (см. initWithEntity:insertIntoManagedObjectContext:).
Вы отговорены переопределить dealloc потому что didTurnIntoFault обычно лучшее время для очистки значений — в отношении управляемого объекта нельзя предъявить претензии в течение некоторого времени после того, как он был превращен в отказ. Базовые Данные не гарантируют это dealloc будет вызван во всех сценариях (такой как тогда, когда приложение выходит); Вы должны поэтому не в этих методах включать требуемые побочные эффекты (как сохранение или изменения в файловой системе, пользовательских настройках, и т.д.).
Таким образом, для initWithEntity:insertIntoManagedObjectContext: и dealloc, важно помнить, что Базовые Данные резервируют монопольное управление жизненным циклом управляемого объекта (т.е. необработанное управление памятью). Это - то, так, чтобы платформа была в состоянии обеспечить функции, такие как uniquing и обслуживанием отношения последствия, а также намного лучшей производительностью, чем было бы иначе возможно.
Методы для переопределения соображений
Следующие методы предназначаются, чтобы быть мелкомодульными и не выполнить крупномасштабные операции. Вы не должны выбирать или сохранять в этих методах. В частности у них не должно быть побочных эффектов на контексте управляемого объекта:
initWithEntity:insertIntoManagedObjectContext:didTurnIntoFaultwillTurnIntoFaultdealloc
В дополнение к методам Вы не должны переопределять, существуют другие, которые, если Вы действительно переопределяете Вас, должны вызвать реализацию суперкласса сначала, включая awakeFromInsert, awakeFromFetch, и методы проверки. Вы не должны изменять отношения в awakeFromFetch — см. описание метода для подробных данных.
Пользовательские методы доступа
Как правило, нет никакой потребности записать пользовательские методы доступа для свойств, определяющихся в объекте соответствующей модели управляемого объекта управляемого объекта. Если Вы желаете или нуждаетесь для этого, хотя, существует несколько образцов реализации, необходимо следовать. Они описаны в Методах доступа Управляемого объекта в Базовом Руководстве по программированию Данных.
Базовые Данные автоматически генерируют методы доступа (и примитивные методы доступа) для Вас. Для атрибутов и к - отношения, Базовые Данные генерируют стандарт, получают и устанавливают методы доступа; поскольку к - много отношений, Базовые Данные генерируют индексируемые методы доступа, как описано в Значении ключа, Кодирующем Методы доступа в Значении ключа, Кодирующем Руководство по программированию. Действительно, однако, необходимо объявить, что методы доступа или свойства Objective-C использования подавляют предупреждения компилятора. Для полного обсуждения посмотрите Методы доступа Управляемого объекта в Базовом Руководстве по программированию Данных.
Пользовательские переменные экземпляра
По умолчанию, NSManagedObject хранит его свойства во внутренней структуре, поскольку объекты, и в общих Базовых Данных являются более эффективной работой с хранением под ее собственным управлением довольно использующие пользовательские переменные экземпляра.
NSManagedObject предоставляет поддержку для диапазона общих типов для значений атрибута, включая строку, дату и число (см. NSAttributeDescription для полного изложения). Если Вы хотите использовать типы, не поддерживающиеся непосредственно, такие как цвета и структуры C, можно или использовать поддающиеся преобразованию атрибуты или создать подкласс NSManagedObject, как описано в Нестандартных Персистентных Атрибутах.
Иногда может быть удобно представлять переменные как скаляры — в получении приложения, например, где переменные представляют размерности и координаты x и y и часто используются в вычислениях. Для представления атрибутов как скаляров Вы объявляете переменные экземпляра, как Вы были бы в любом другом классе. Также необходимо реализовать подходящие методы доступа, как описано в Методах доступа Управляемого объекта.
При определении пользовательских переменных экземпляра, например, для хранения полученных атрибутов или других переходных свойств, необходимо очистить эти переменные в didTurnIntoFault вместо dealloc.
Методы проверки
NSManagedObject обеспечивает непротиворечивые рычаги для проверки значений свойств и межзначений свойств. Вы обычно не должны переопределять validateValue:forKey:error:, вместо этого необходимо реализовать методы формы validate<Key>:error:, как определено NSKeyValueCoding протокол. Если Вы хотите проверить межзначения свойств, можно переопределить validateForUpdate: и/или связанные методы проверки.
Вы не должны вызывать validateValue:forKey:error: в пользовательских методах проверки свойства — если Вы делаете так, Вы создадите бесконечный цикл когда validateValue:forKey:error: вызывается во время выполнения. При реализации пользовательских методов проверки Вы не должны обычно вызывать их непосредственно. Вместо этого необходимо вызвать validateValue:forKey:error: с надлежащим ключом. Это гарантирует, что применяются любые ограничения, определенные в модели управляемого объекта.
Если Вы реализуете пользовательские методы проверки межсвойства (такой как validateForUpdate:), необходимо вызвать реализацию суперкласса сначала. Это гарантирует, что также вызываются отдельные методы проверки свойства. Если существуют многократные отказы проверки в одной работе, необходимо собрать их в массиве и добавить массив — использование ключа NSDetailedErrorsKey— к userInfo словарю в NSError возразите, что Вы возвращаетесь. Для примера посмотрите Проверку Управляемого объекта.
Оператор импорта
Swift
import CoreData
Objective C
@import CoreData;
Доступность
Доступный в OS X v10.4 и позже.
-
init (entity:insertIntoManagedObjectContext:) - initWithEntity:insertIntoManagedObjectContext:Определяемый инициализаторИнициализирует получатель и вставляет его в указанный контекст управляемого объекта.
Объявление
Swift
init(entityentity: NSEntityDescription, insertIntoManagedObjectContextcontext: NSManagedObjectContext?)Objective C
- (instancetype)initWithEntity:(NSEntityDescription *)entityinsertIntoManagedObjectContext:(NSManagedObjectContext *)contextПараметры
entityОбъект которого можно создать экземпляр.
Модель связалась с
contextперсистентный координатор хранилища должен содержатьentity.contextКонтекст, в который вставляется новый экземпляр.
Возвращаемое значение
Инициализированный экземпляр надлежащего класса для
entity.Обсуждение
NSManagedObjectиспользует динамическую генерацию класса для поддержки Objective C 2 функции свойств (см. Заявленные Свойства) путем автоматического создания подкласса класса, подходящего дляentity.initWithEntity:insertIntoManagedObjectContext:поэтому возвращает экземпляр надлежащего класса дляentity. Динамично сгенерированный подкласс будет основываться на классе, указанном объектом, так указание, что пользовательский класс в Вашей модели заменит класс, переданныйalloc.Если
contextнеnil, этот метод вызывает[context insertObject:self](который заставляет awakeFromInsert быть вызванным).Вы отговорены переопределить этот метод — необходимо вместо этого переопределить awakeFromInsert и/или awakeFromFetch (если существует логика, характерная для этих методов, это должен быть factored в третий метод, вызывающийся от обоих). При выполнении пользовательской инициализации в этом методе можно вызвать проблемы с отменой и восстановить операции.
Во многих приложениях нет никакой потребности впоследствии присвоиться, недавно создаваемый управляемый объект к определенному хранилищу — посмотрите
assignObject:toPersistentStore:. Если Ваше приложение имеет сети магазинов, и действительно необходимо присвоить объект определенному хранилищу, Вы не должны делать так в методе инициализатора управляемого объекта. Такое присвоение является контроллером - не логика уровня модели.Специальные замечания
Если Вы переопределяете
initWithEntity:insertIntoManagedObjectContext:, необходимо гарантировать, что Вы устанавливаетеselfк возвращаемому значению от вызоваsuperреализация, как показано в следующем примере:- (id)initWithEntity:(NSEntityDescription*)entity insertIntoManagedObjectContext:(NSManagedObjectContext*)context{self = [super initWithEntity:entity insertIntoManagedObjectContext:context];if (self != nil) {// Perform additional initialization.}return self;}
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Описание объекта получателя. (только для чтения)
Объявление
Swift
var entity: NSEntityDescription { get }Objective C
@property(nonatomic, readonly, strong) NSEntityDescription *entityОбсуждение
Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
возраженный возраженныйСвойствоИдентификатор объекта получателя. (только для чтения)
Объявление
Swift
var objectID: NSManagedObjectID { get }Objective C
@property(nonatomic, readonly, strong) NSManagedObjectID *objectIDОбсуждение
Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
URIRepresentation(NSManagedObjectID) -
Возвращает получатель.
Объявление
Objective C
- (id)selfОбсуждение
Подклассы не должны переопределять этот метод.
Примечание для разработчиков EOF: Базовые Данные не полагаются на этот метод для сбоя — посмотрите вместо этого
willAccessValueForKey:.
-
managedObjectContext managedObjectContextСвойствоКонтекст управляемого объекта, в котором регистрируется получатель. (только для чтения)
Объявление
Swift
unowned(unsafe) var managedObjectContext: NSManagedObjectContext? { get }Objective C
@property(nonatomic, readonly, assign) NSManagedObjectContext *managedObjectContextОбсуждение
Может быть
nilесли получатель был удален из его контекста.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
hasChanges hasChangesСвойствоБулево значение, указывающее, был ли получатель вставлен, было удалено или не сохранило изменения. (только для чтения)
Объявление
Swift
var hasChanges: Bool { get }Objective C
@property(nonatomic, readonly) BOOL hasChangesОбсуждение
YEStrueесли получатель был вставлен, был удален или не сохранил изменения, иначеNOfalse. Результатом является эквивалент осуществления операции ИЛИ значенияinserted,deleted, иupdated.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.7 и позже.
См. также
-
вставленный вставленныйСвойствоБулево значение, указывающее, был ли получатель вставлен в контекст управляемого объекта. (только для чтения)
Объявление
Swift
var inserted: Bool { get }Objective C
@property(nonatomic, getter=isInserted, readonly) BOOL insertedОбсуждение
YEStrueесли получатель был вставлен в контекст управляемого объекта, иначеNOfalse. Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.10 и позже.
См. также
-
обновленный обновленныйСвойствоБулево значение, указывающее, не сохранил ли получатель изменения. (только для чтения)
Объявление
Swift
var updated: Bool { get }Objective C
@property(nonatomic, getter=isUpdated, readonly) BOOL updatedОбсуждение
YEStrueесли получатель не сохранил изменения, иначеNOfalse. Получатель не сохранил изменения, если он был обновлен, так как его контекст управляемого объекта был в последний раз сохранен.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.10 и позже.
См. также
-
Булево значение, указывающее, будет ли получатель удален во время следующего сохранения. (только для чтения)
Объявление
Swift
var deleted: Bool { get }Objective C
@property(nonatomic, getter=isDeleted, readonly) BOOL deletedОбсуждение
YEStrueесли Базовые Данные попросят, чтобы персистентное хранилище удалило объект во время следующей работы сохранения, иначеNOfalse. Это может возвратитьсяNOfalseв других случаях особенно после того, как объект был удален. Непосредственность, с которой это прекратит возвращатьсяYEStrueзависит от того, где объект находится в процессе того, чтобы быть удаленным.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.10 и позже.
См. также
– isFaultвставленныйобновленныйdeletedObjects(NSManagedObjectContext)NSManagedObjectContextObjectsDidChangeNotification(NSManagedObjectContext) -
Булево значение, указывающее, является ли получатель отказом. (только для чтения)
Объявление
Swift
var fault: Bool { get }Objective C
@property(nonatomic, getter=isFault, readonly) BOOL faultОбсуждение
YEStrueесли получатель является отказом, иначеNOfalse. Знание, является ли объект отказом, полезно во многих ситуациях, когда вычисления являются дополнительными. Это может также использоваться, чтобы избежать увеличивать граф объектов излишне (который может улучшить производительность, поскольку это может избежать длительных выборок из хранилищ данных).Если это свойство
NOfalse, тогда данные получателя должны быть в памяти. Однако, если это свойствоYEStrue, это не означает, что данные не находятся в памяти. Данные могут быть в памяти, или это не может, в зависимости от многих факторов, влияющих на кэширование.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.10 и позже.
-
faultingState faultingStateСвойствоДающее сбой состояние получателя. (только для чтения)
Объявление
Swift
var faultingState: Int { get }Objective C
@property(nonatomic, readonly) NSUInteger faultingStateВозвращаемое значение
0если объект полностью инициализируется как управляемый объект и не переходящий к или от другого состояния, иначе некоторое другое значение.Обсуждение
0если объект полностью инициализируется как управляемый объект и не переходящий к или от другого состояния, иначе некоторое другое значение. Это свойство позволяет Вам определять, находится ли объект в переходной фазе при получении значения ключа, наблюдая уведомление изменения.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращает булево значение, указывающее, является ли отношение для данного ключа отказом.
Объявление
Swift
func hasFaultForRelationshipNamed(_key: String) -> BoolObjective C
- (BOOL)hasFaultForRelationshipNamed:(NSString *)keyПараметры
keyИмя одного из отношений получателя.
Возвращаемое значение
YEStrueесли отношение для для ключаkeyотказ, иначеNOfalse.Обсуждение
Если указанное отношение является отказом, вызывание этого метода не приводит к увольнению отказа.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает булево значение, указывающее, должны ли экземпляры класса быть отмечены как имеющие изменения, если изменяется несмоделированное свойство.
Объявление
Swift
class func contextShouldIgnoreUnmodeledPropertyChanges() -> BoolObjective C
+ (BOOL)contextShouldIgnoreUnmodeledPropertyChangesВозвращаемое значение
NOfalseесли несмоделированное свойство изменяется, иначе, если экземпляры класса должны быть отмечены как имеющие измененияYEStrue.Обсуждение
Значение по умолчанию
YEStrue.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.6 и позже.
См. также
– changedValuesForCurrentEventhasChanges(NSManagedObjectContext) -
Вызванный автоматически Базовой платформой Данных после того, как получатель был выбран.
Объявление
Swift
func awakeFromFetch()Objective C
- (void)awakeFromFetchОбсуждение
Вы обычно используете этот метод, чтобы вычислить полученные значения или воссоздать переходные отношения от персистентных свойств получателя.
Обработка изменения контекста управляемого объекта явно отключена вокруг этого метода так, чтобы можно было использовать общедоступные методы set для установления переходных значений и других кэшей без dirtying объект или его контекст. Из-за этого, однако, Вы не должны изменять отношения в этом методе, поскольку не будет установлена инверсия.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Вызванный автоматически Базовой платформой Данных, когда получатель сначала вставляется в контекст управляемого объекта.
Объявление
Swift
func awakeFromInsert()Objective C
- (void)awakeFromInsertОбсуждение
Вы обычно используете этот метод для инициализации специальных значений свойств по умолчанию. Этот метод вызывается только один раз во времени жизни объекта.
Если Вы хотите установить значения атрибута в реализации этого метода, необходимо обычно использовать примитивные методы доступа (также
setPrimitiveValue:forKey:или — лучше — надлежащие пользовательские примитивные средства доступа). Это гарантирует, что новые значения обрабатываются, поскольку базовая линия оценивает вместо того, чтобы быть зарегистрированной как невыполнимые изменения для рассматриваемых свойств.Специальные замечания
Если Вы создаете управляемый объект, тогда выполняют операции отмены, чтобы принести контекст управляемого объекта к состоянию до создания объекта, затем выполнить операции восстановления для возвращения контекста управляемого объекта состоянию после создания объекта,
awakeFromInsertне вызывается во второй раз.Вы обычно отговариваетесь выполнить выборки в реализации
awakeFromInsert. Несмотря на то, что это позволяется, выполнение запроса выборки может инициировать отправку внутренних Базовых уведомлений Данных, которые могут иметь нежелательные побочные эффекты. Например, в OS X, экземпляреNSArrayControllerможет закончить тем, что вставил новый объект в довольный массив дважды.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Вызванный автоматически Базовой платформой Данных, когда получатель сбрасывается вследствие отмены, восстановления или другого изменения состояния мультисвойства.
Объявление
Swift
func awakeFromSnapshotEvents(_flags: NSSnapshotEventType)Objective C
- (void)awakeFromSnapshotEvents:(NSSnapshotEventType)flagsПараметры
flagsНемного маски
didChangeValueForKey:константы для обозначения события или событий, приведших к вызываемому методу.Для возможных значений посмотрите NSSnapshotEventType.
Обсуждение
Вы обычно используете этот метод, чтобы вычислить полученные значения или воссоздать переходные отношения от персистентных свойств получателя.
Если Вы хотите установить значения атрибута и должны избежать испускать уведомления изменения наблюдения значения ключа, необходимо использовать примитивные методы доступа (также
setPrimitiveValue:forKey:или — лучше — надлежащие пользовательские примитивные средства доступа). Это гарантирует, что новые значения обрабатываются, поскольку базовая линия оценивает вместо того, чтобы быть зарегистрированной как невыполнимые изменения для рассматриваемых свойств.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвращает словарь, содержащий ключи и (старые) значения персистентных свойств, измененных начиная с последней выборки или сохранения получателя.
Объявление
Swift
func changedValues() -> [NSObject : AnyObject]Objective C
- (NSDictionary *)changedValuesВозвращаемое значение
Словарь, содержащий, как включает имена персистентных свойств, изменившихся, так как получатель был в последний раз выбран или сохранен, и как значения новые значения свойств.
Обсуждение
Этот метод только сообщает об изменениях в свойствах, определяющихся как персистентные свойства получателя, не изменения в переходных свойствах или пользовательских переменных экземпляра. Этот метод излишне не запускает отказы отношения.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Возвращает словарь, содержащий ключи и старые значения персистентных свойств, изменившихся начиная с последней регистрации
NSManagedObjectContextObjectsDidChangeNotification.Объявление
Swift
func changedValuesForCurrentEvent() -> [NSObject : AnyObject]Objective C
- (NSDictionary *)changedValuesForCurrentEventВозвращаемое значение
Словарь, ключи которого являются именами персистентных свойств, изменившихся начиная с последней регистрации
NSManagedObjectContextObjectsDidChangeNotification, и чьи значения являются старым значением персистентных свойств.Обсуждение
Этот метод только сообщает об изменениях в свойствах, определяющихся как персистентные свойства получателя, не изменения в переходных свойствах или пользовательских переменных экземпляра. Этот метод излишне не запускает отказы отношения.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.7 и позже.
См. также
-
Возвращает словарь последних выбранных или сохраненных значений получателя для свойств, указанных данными ключами.
Объявление
Swift
func committedValuesForKeys(_keys: [AnyObject]?) -> [NSObject : AnyObject]Objective C
- (NSDictionary *)committedValuesForKeys:(NSArray *)keysПараметры
keysМассив, содержащий имена свойств получателя, или
nil.Возвращаемое значение
Словарь, содержащий последние выбранные или сохраненные значения получателя для свойств, указанных
keys.Обсуждение
nilзначения представлены экземпляромNSNull.Этот метод только сообщает о значениях свойств, определяющихся как персистентные свойства получателя, не значения переходных свойств или пользовательских переменных экземпляра.
Можно вызвать этот метод с
keysзначениеnilполучать фиксировавшие значения для свойств всего получателя, как проиллюстрировано следующим примером.NSDictionary *allCommittedValues =[aManagedObject committedValuesForKeys:nil];
Более эффективно использовать
nilчем передать массив всех ключей свойства.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных, когда получатель собирается быть удаленным.
Объявление
Swift
func prepareForDeletion()Objective C
- (void)prepareForDeletionОбсуждение
Можно реализовать этот метод для выполнения любых операций, требуемых, прежде чем объект будет удален, такие как пользовательское распространение, прежде чем отношения будут разъединены, или реконфигурирование объектов с помощью наблюдения значения ключа.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Освобождает память, занятую получателем.
Объявление
Objective C
- (void)deallocОбсуждение
Этот метод сначала вызывает
didTurnIntoFault.Вы не должны обычно переопределять этот метод — вместо этого необходимо поместить код «очистки» в
prepareForDeletionилиdidTurnIntoFault.См. также
-
Вызванный автоматически Базовой платформой Данных, когда сохраняется контекст управляемого объекта получателя.
Объявление
Swift
func willSave()Objective C
- (void)willSaveОбсуждение
Этот метод может иметь «побочные эффекты» на персистентных значениях. Можно использовать его для, например, вычислить персистентные значения из других значений переходной или временной памяти.
Если Вы хотите обновить персистентное значение свойства, необходимо обычно тестировать на равенство любого нового значения с существующим значением прежде, чем внести изменение. При изменении значений свойств с помощью стандартных методов доступа Базовые Данные будут наблюдать результирующее уведомление изменения и тем самым вызывать
willSaveснова прежде, чем сохранить контекст управляемого объекта объекта. Если Вы продолжаете изменять значение вwillSave,willSaveбудет продолжать быть вызванным до Ваших катастрофических отказов программы.Например, при установке измененной в последний раз метки времени необходимо проверить, устанавливаете ли или Вы ранее его в том же, сохраняют работу, или что существующая метка времени не является меньше, чем небольшая дельта с текущего времени. Обычно лучше вычислить метку времени один раз для всех сохраняемых объектов (например, в ответ на
NSManagedObjectContextWillSaveNotification).При изменении значений свойств с помощью примитивных средств доступа Вы избегаете возможности бесконечной рекурсии, но Базовые Данные не заметят изменения, которое Вы вносите.
Смысл «сохранения» в имени метода является смыслом оператора фиксации базы данных и так применяется к удалениям, а также к обновлениям к объектам. Для подклассов этот метод является поэтому надлежащим местоположением для кода, который будет выполняться, когда объект удалил, а также «сохранил на диск». Можно узнать, отмечен ли объект для удаления с
isDeleted.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных после того, как контекст управляемого объекта получателя завершает работу сохранения.
Объявление
Swift
func didSave()Objective C
- (void)didSaveОбсуждение
Можно использовать этот метод, чтобы уведомить другие объекты после сохранения и вычислить переходные значения из персистентных значений.
Этот метод может иметь «побочные эффекты» на персистентных значениях, однако любые изменения, Вы делаете использующие стандартные методы доступа, будут по умолчанию грязный контекст управляемого объекта и оставлять Ваш контекст с несохраненными изменениями. Кроме того, если контекст объекта будет иметь менеджера по отмене, то такие изменения добавят работу отмены. Для основанных на документе приложений, изменения, внесенные в
didSaveпоэтому войдет в следующую группировку отмены, которая может привести к «пустым» операциям отмены с точки зрения пользователя. Можно хотеть отключить регистрацию отмены для предотвращения этой проблемы.Смысл «сохранения» в имени метода является смыслом оператора фиксации базы данных и так применяется к удалениям, а также к обновлениям к объектам. Для подклассов этот метод является поэтому надлежащим местоположением для кода, который будет выполняться, когда объект удалил, а также «сохранил на диск». Можно узнать, отмечен ли объект для удаления с
isDeleted.Специальные замечания
Вы не можете попытаться возродить удаленный объект в
didSave.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных, прежде чем получатель преобразовывается в отказ.
Объявление
Swift
func willTurnIntoFault()Objective C
- (void)willTurnIntoFaultОбсуждение
Этот метод является компаньоном
didTurnIntoFaultметод. Можно использовать его для (ре) состояние набора, требующее доступа к значениям свойств (например, наблюдатели через ключевые пути). Реализация по умолчанию ничего не делает.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных, когда получатель превращен в отказ.
Объявление
Swift
func didTurnIntoFault()Objective C
- (void)didTurnIntoFaultОбсуждение
Вы используете этот метод для убирания пользовательских кэшей данных — переходные значения, объявленные, поскольку свойства объекта обычно уже убираются к тому времени, когда этот метод вызывается (см., например,
refreshObject:mergeChanges:).Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Возвращает значение для свойства, указанного
key.Объявление
Swift
func valueForKey(_key: String) -> AnyObject?Objective C
- (id)valueForKey:(NSString *)keyПараметры
keyИмя одного из свойств получателя.
Возвращаемое значение
Значение свойства, указанного
key.Обсуждение
Если
keyне свойство, определенное моделью, метод повышает исключение. Этот метод переопределяетсяNSManagedObjectполучить доступ к универсальному хранению словаря управляемого объекта, если класс получателя явно не обеспечивает значение ключа, кодирующее совместимые методы доступа дляkey.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Устанавливает указанное свойство получателя к указанному значению.
Объявление
Swift
func setValue(_value: AnyObject?, forKeykey: String)Objective C
- (void)setValue:(id)valueforKey:(NSString *)keyПараметры
valueНовое значение для свойства, указанного
key.keyИмя одного из свойств получателя.
Обсуждение
Если
keyне свойство, определенное моделью, метод повышает исключение. Еслиkeyидентифицирует для - одно отношение, связывает объект, указанныйvalueк получателю, не связывая ранее связанный объект, если был тот. Учитывая объект коллекции и ключ, идентифицирующий для - многие отношение, связывает объекты, содержавшиеся в наборе к получателю, не связывая ранее связанные объекты, если был кто-либо.Этот метод переопределяется
NSManagedObjectполучить доступ к универсальному хранению словаря управляемого объекта, если класс получателя явно не обеспечивает значение ключа, кодирующее совместимые методы доступа дляkey.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Возвращает непостоянный набор, обеспечивающий доступ для чтения-записи к неупорядоченному к - многие отношение, указанное данным ключом.
Объявление
Objective C
- (NSMutableSet *)mutableSetValueForKey:(NSString *)keyПараметры
keyИмя одного из получателя к - много отношений.
Обсуждение
Если
keyне свойство, определенное моделью, метод повышает исключение.Этот метод переопределяется
NSManagedObjectполучить доступ к универсальному хранению словаря управляемого объекта, если класс получателя явно не обеспечивает значение ключа, кодирующее совместимые методы доступа дляkey.Специальные замечания
По причинам производительности, объект прокси, возвращенный управляемыми объектами для
mutableSetValueForKey:не поддерживаетset<Key>:методы set стиля для отношений. Например, если Вы имеете к - многие отношениеemployeesиз класса Отдела и методов доступа реализацииemployeesиsetEmployees:, тогда управляйте отношением с помощью объекта прокси, возвращенногоmutableSetValueForKey:@"employees",setEmployees:не вызывается. Необходимо реализовать другие непостоянные переопределения средства доступа прокси вместо этого (см. Методы доступа Управляемого объекта в Базовом Руководстве по программированию Данных). -
Возвраты из частной внутренней памяти получателя значение для указанного свойства.
Объявление
Swift
func primitiveValueForKey(_key: String) -> AnyObject?Objective C
- (id)primitiveValueForKey:(NSString *)keyПараметры
keyИмя одного из свойств получателя.
Возвращаемое значение
Значение свойства, указанного
key. Возвратыnilесли не было установлено никакое значение.Обсуждение
Этот метод не вызывает методы уведомления доступа (
willAccessValueForKey:иdidAccessValueForKey:). Этот метод используется прежде всего подклассами, реализующими пользовательские методы доступа, для которых нужен прямой доступ к частному хранению получателя.Специальные замечания
Подклассы не должны переопределять этот метод.
Следующие моменты также применяются:
Примитивные методы доступа только поддерживаются на смоделированных свойствах. При вызове примитивного средства доступа на несмоделированное свойство это будет вместо этого работать на случайное смоделированное свойство. (Библиотеки отладки и платформы (доступный от веб-сайта Разработчика Apple) имеют утверждения для тестирования на передачу несмоделированных ключей к этим методам.)
Вы строго призваны использовать динамично сгенерированные средства доступа вместо того, чтобы использовать этот метод непосредственно (например,
primitiveName:вместоprimitiveValueForKey:@"name"). Динамические средства доступа намного более эффективны, и позволяют время компиляции проверять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Наборы в частной внутренней памяти получателя значение данного свойства.
Объявление
Swift
func setPrimitiveValue(_value: AnyObject?, forKeykey: String)Objective C
- (void)setPrimitiveValue:(id)valueforKey:(NSString *)keyПараметры
valueНовое значение для свойства, указанного
key.keyИмя одного из свойств получателя.
Обсуждение
Наборы в частной внутренней памяти получателя значение свойства, указанного
keyкvalue. Еслиkeyидентифицирует для - одно отношение, связывает объект, указанныйvalueк получателю, не связывая ранее связанный объект, если был тот. Учитывая объект коллекции и ключ, идентифицирующий для - многие отношение, связывает объекты, содержавшиеся в наборе к получателю, не связывая ранее связанные объекты, если был кто-либо.Этот метод не вызывает методы уведомления изменения (
willChangeValueForKey:иdidChangeValueForKey:). Это обычно используется подклассами, реализующими пользовательские методы доступа, для которых нужен прямой доступ к частной внутренней памяти получателя. Это также используется Базовой платформой Данных, чтобы инициализировать получатель со значениями от персистентного хранилища или восстановить значение от снимка.Специальные замечания
Вы не должны переопределять этот метод.
Необходимо обычно использовать этот метод только для изменения атрибутов (обычно переходный процесс), не отношения. При попытке установить в - многие отношение к новому
NSMutableSetобъект, это (в конечном счете) перестанет работать. В необычном событии, что необходимо изменить отношение с помощью этого метода, Вы сначала получаете существующее использование набораprimitiveValueForKey:(гарантируйте, что не возвращается методnil), создайте непостоянную копию, и затем измените копию — как проиллюстрировано в следующем примере:NSMutableSet *recentHires = [[dept primitiveValueForKey:@"recentHires"] mutableCopy];if (recentHires != nil) {[recentHires removeAllObjects];[dept setPrimitiveValue:recentHires forKey:@"recentHires"];}
Если отношение является реверсивным (т.е. если обратная связь указана), тогда, Вы также ответственны за поддерживание обратных отношений (независимо от кардинальности) — в отличие от нормального поведения Базовых Данных, описанного в Использовании Управляемых объектов.
Следующие моменты также применяются:
Примитивные методы доступа только поддерживаются на смоделированных свойствах. При вызове примитивного средства доступа на несмоделированное свойство это будет вместо этого работать на случайное смоделированное свойство. (Библиотеки отладки и платформы от (доступный от Веб-сайта Разработчика Apple) имеют утверждения для тестирования на передачу несмоделированных ключей к этим методам.)
Вы строго призваны использовать динамично сгенерированные средства доступа вместо того, чтобы использовать этот метод непосредственно (например,
setPrimitiveName:вместоsetPrimitiveValue:newName forKey:@"name"). Динамические средства доступа намного более эффективны, и позволяют время компиляции проверять.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Проверяет значение свойства для данного ключа.
Объявление
Swift
func validateValue(_value: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeykey: String, errorerror: NSErrorPointer) -> BoolПараметры
valueУказатель на объект.
keyИмя одного из свойств получателя.
errorЕсли
valueне допустимое значение дляkey(и не может быть принужден), по возврату содержит экземплярNSErrorэто описывает проблему.Возвращаемое значение
YEStrueеслиvalueдопустимое значение дляkey(или еслиvalueможет быть принужден в допустимое значение дляkey), иначеNOfalse.Обсуждение
Этот метод ответственен за две вещи: принуждение значения в надлежащий тип для объекта и проверки его согласно правилам объекта.
Реализация по умолчанию, предоставленная
NSManagedObjectконсультируется с описанием объекта объекта, чтобы принудить значение и проверить на основные ошибки, такие как нулевое значение, когда это не позволяется и длина строк, когда ширина поля указана для атрибута. Это тогда ищет метод формыvalidate<Key>:error:и вызывает его, если это существует.Можно реализовать методы формы
validate<Key>:error:выполнять проверку, которая не является возможным использованием ограничений, доступных в описании свойства. Если это находит недопустимое значение, Ваш метод проверки должен возвратитьсяNOfalseи вerrorNSErrorобъект, описывающий проблему. Для получения дополнительной информации посмотрите Проверку Управляемого объекта. Для проверки межсвойства (для проверки на комбинации значений, которые недопустимы) посмотритеvalidateForUpdate:и связанные методы.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Определяет, может ли получатель быть удален в его текущем состоянии.
Объявление
Swift
func validateForDelete(_error: NSErrorPointer) -> BoolObjective C
- (BOOL)validateForDelete:(NSError **)errorПараметры
errorЕсли получатель не может быть удален в его текущем состоянии, по возврату содержит экземпляр
NSErrorэто описывает проблему.Возвращаемое значение
YEStrueесли получатель может быть удален в его текущем состоянии, иначеNOfalse.Обсуждение
Объект не может быть удален, если он имеет отношение, имеет «отклонение», удаляют правило, и то отношение имеет целевой объект.
NSManagedObjectреализация отправляет описанию объекта получателя сообщение, выполняющее основную проверку на основе присутствия или отсутствия значений.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Определяет, может ли получатель быть вставлен в его текущее состояние.
Объявление
Swift
func validateForInsert(_error: NSErrorPointer) -> BoolObjective C
- (BOOL)validateForInsert:(NSError **)errorПараметры
errorЕсли получатель не может быть вставлен в его текущее состояние, по возврату содержит экземпляр
NSErrorэто описывает проблему.Возвращаемое значение
YEStrueесли получатель может быть вставлен в его текущее состояние, иначеNOfalse.Специальные замечания
Подклассы должны вызвать реализацию super прежде, чем выполнить их собственную проверку и должны объединить любую ошибку, возвращенную реализацией super с их собственным (см. Проверку Управляемого объекта).
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Определяет, допустимо ли текущее состояние получателя.
Объявление
Swift
func validateForUpdate(_error: NSErrorPointer) -> BoolObjective C
- (BOOL)validateForUpdate:(NSError **)errorПараметры
errorЕсли текущее состояние получателя недопустимо, по возврату содержит экземпляр
NSErrorэто описывает проблему.Возвращаемое значение
YEStrueесли текущее состояние получателя допустимо, иначеNOfalse.Обсуждение
NSManagedObjectреализация выполняет итерации через все свойства получателя, проверяющие каждого поочередно. Если это приводит больше чем к одной ошибке,userInfoсловарь вNSErrorвозвращенный вerrorсодержит ключNSDetailedErrorsKey; соответствующее значение является массивом, содержащим отдельные ошибки проверки. Если Вы передаетеNULLкак ошибка, проверка прервется после первого отказа.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Возвращает булево значение, указывающее, предоставляет ли получатель автоматическую поддержку для значения ключа, наблюдая уведомления изменения для данного ключа.
Объявление
Objective C
+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)keyПараметры
keyИмя одного из свойств получателя.
Возвращаемое значение
YEStrueесли получатель предоставляет автоматическую поддержку для значения ключа, наблюдая уведомления изменения дляkey, иначеNOfalse.Обсуждение
Реализация по умолчанию для
NSManagedObjectвозвратыNOfalseдля смоделированных свойств, иYEStrueдля несмоделированных свойств. Для больше о наблюдении значения ключа, посмотрите, что Значение ключа Наблюдает Руководство по программированию. -
Предоставляет поддержку для значения ключа, наблюдая уведомление доступа.
Объявление
Swift
func didAccessValueForKey(_key: String)Objective C
- (void)didAccessValueForKey:(NSString *)keyПараметры
keyИмя одного из свойств получателя.
Обсуждение
Вместе с
willAccessValueForKey:, этот метод используется, чтобы запустить отказы, поддерживать обратные отношения, и т.д. Каждый доступ для чтения должен быть обернут в эту пару метода (таким же образом, что каждый доступ для записи должен быть обернут вwillChangeValueForKey:/didChangeValueForKey:пара метода). В реализации по умолчаниюNSManagedObjectэти методы вызываются для Вас автоматически. Если, скажем, Вы создаете пользовательский подкласс, использующий явные переменные экземпляра, необходимо вызвать их сами, как в следующем примере.- (NSString *)firstName{[self willAccessValueForKey:@"firstName"];NSString *rtn = firstName;[self didAccessValueForKey:@"firstName"];return rtn;}
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Возвращает информацию наблюдения получателя.
Объявление
Swift
func observationInfo() -> AnyObject?Objective C
- (id)observationInfoВозвращаемое значение
Информация наблюдения получателя.
Обсуждение
Для больше о наблюдении значения ключа, посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Устанавливает информацию наблюдения получателя.
Объявление
Swift
func setObservationInfo(_value: AnyObject?)Objective C
- (void)setObservationInfo:(id)valueПараметры
valueНовая информация наблюдения для получателя.
Обсуждение
Для больше об информации о наблюдении, посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Предоставляет поддержку для значения ключа, наблюдая уведомление доступа.
Объявление
Swift
func willAccessValueForKey(_key: String?)Objective C
- (void)willAccessValueForKey:(NSString *)keyПараметры
keyИмя одного из свойств получателя.
Обсуждение
Посмотрите
didAccessValueForKey:для большего количества подробных данных. Можно вызвать этот метод сkeyзначениеnilгарантировать, что отказ был запущен, как проиллюстрировано следующим примером.[aManagedObject willAccessValueForKey:nil];
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Вызванный, чтобы сообщить получателю, что изменилось значение данного свойства.
Объявление
Swift
func didChangeValueForKey(_key: String)Objective C
- (void)didChangeValueForKey:(NSString *)keyПараметры
keyИмя изменившегося свойства.
Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
didChangeValueForKey (_: withSetMutation:usingObjects:) - didChangeValueForKey:withSetMutation:usingObjects:Вызванный, чтобы сообщить получателю, что указанное изменение было внесено в указанное к - многие отношение.
Объявление
Swift
func didChangeValueForKey(_inKey: String, withSetMutationinMutationKind: NSKeyValueSetMutationKind, usingObjectsinObjects: NSSet)Objective C
- (void)didChangeValueForKey:(NSString *)inKeywithSetMutation:(NSKeyValueSetMutationKind)inMutationKindusingObjects:(NSSet *)inObjectsПараметры
inKeyИмя свойства, которое является к - многие отношение.
inMutationKindТип внесенного изменения.
inObjectsОбъекты, вовлеченные в изменение (см.
NSKeyValueSetMutationKind).Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Вызванный, чтобы сообщить получателю, что значение данного свойства собирается измениться.
Объявление
Swift
func willChangeValueForKey(_key: String)Objective C
- (void)willChangeValueForKey:(NSString *)keyПараметры
keyИмя свойства, которое изменится.
Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
willChangeValueForKey (_: withSetMutation:usingObjects:) - willChangeValueForKey:withSetMutation:usingObjects:Вызванный, чтобы сообщить получателю, что указанное изменение собирается быть внесенным в указанное к - многие отношение.
Объявление
Swift
func willChangeValueForKey(_inKey: String, withSetMutationinMutationKind: NSKeyValueSetMutationKind, usingObjectsinObjects: NSSet)Objective C
- (void)willChangeValueForKey:(NSString *)inKeywithSetMutation:(NSKeyValueSetMutationKind)inMutationKindusingObjects:(NSSet *)inObjectsПараметры
inKeyИмя свойства, которое является к - многие отношение
inMutationKindТип изменения, которое будет внесено.
inObjectsОбъекты, вовлеченные в изменение (см.
NSKeyValueSetMutationKind).Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.4 и позже.
-
Константы возвратились из
awakeFromSnapshotEvents:обозначить причину, почему управляемый объект, возможно, должен повторно инициализировать значения.Объявление
Swift
struct NSSnapshotEventType : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var UndoInsertion: NSSnapshotEventType { get } static var UndoDeletion: NSSnapshotEventType { get } static var UndoUpdate: NSSnapshotEventType { get } static var Rollback: NSSnapshotEventType { get } static var Refresh: NSSnapshotEventType { get } static var MergePolicy: NSSnapshotEventType { get } }Objective C
enum { NSSnapshotEventUndoInsertion = 1 << 1, NSSnapshotEventUndoDeletion = 1 << 2, NSSnapshotEventUndoUpdate = 1 << 3, NSSnapshotEventRollback = 1 << 4, NSSnapshotEventRefresh = 1 << 5, NSSnapshotEventMergePolicy = 1 << 6 }; typedef NSUInteger NSSnapshotEventType;Константы
-
UndoInsertionNSSnapshotEventUndoInsertionУказывает изменение вследствие отмены от вставки.
Доступный в OS X v10.6 и позже.
-
UndoDeletionNSSnapshotEventUndoDeletionУказывает изменение вследствие отмены от удаления.
Доступный в OS X v10.6 и позже.
-
UndoUpdateNSSnapshotEventUndoUpdateУказывает изменение вследствие отмены уровня свойства.
Доступный в OS X v10.6 и позже.
-
RollbackNSSnapshotEventRollbackУказывает изменение вследствие откатываемого контекста управляемого объекта.
Доступный в OS X v10.6 и позже.
-
RefreshNSSnapshotEventRefreshУказывает изменение вследствие обновляемого управляемого объекта.
Доступный в OS X v10.6 и позже.
-
MergePolicyNSSnapshotEventMergePolicyУказывает изменение вследствие разрешения конфликтов во время работы сохранения.
Доступный в OS X v10.6 и позже.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в OS X v10.6 и позже.
-
