NSManagedObject
Оператор импорта
Swift
import CoreData
Objective C
@import CoreData;
Доступность
Доступный в iOS 3.0 и позже.
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:
didTurnIntoFault
willTurnIntoFault
dealloc
В дополнение к методам Вы не должны переопределять, существуют другие, которые, если Вы действительно переопределяете Вас, должны вызвать реализацию суперкласса сначала, включая 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
возразите, что Вы возвращаетесь. Для примера посмотрите Проверку Управляемого объекта.
-
init (entity:insertIntoManagedObjectContext:) - initWithEntity:insertIntoManagedObjectContext:
Определяемый инициализаторИнициализирует получатель и вставляет его в указанный контекст управляемого объекта.
Объявление
Swift
init(entity
entity
: NSEntityDescription, insertIntoManagedObjectContextcontext
: NSManagedObjectContext?)Objective C
- (instancetype)initWithEntity:(NSEntityDescription *)
entity
insertIntoManagedObjectContext:(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
Доступность
Доступный в iOS 3.0 и позже.
-
entity
СвойствоОписание объекта получателя. (только для чтения)
Объявление
Swift
var entity: NSEntityDescription { get }
Objective C
@property(nonatomic, readonly, strong) NSEntityDescription *entity
Обсуждение
Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
objectID
СвойствоИдентификатор объекта получателя. (только для чтения)
Объявление
Swift
var objectID: NSManagedObjectID { get }
Objective C
@property(nonatomic, readonly, strong) NSManagedObjectID *objectID
Обсуждение
Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
URIRepresentation
(NSManagedObjectID
) -
Возвращает получатель.
Объявление
Objective C
- (id)self
Обсуждение
Подклассы не должны переопределять этот метод.
Примечание для разработчиков EOF: Базовые Данные не полагаются на этот метод для сбоя — посмотрите вместо этого
willAccessValueForKey:
.
-
managedObjectContext
СвойствоКонтекст управляемого объекта, в котором регистрируется получатель. (только для чтения)
Объявление
Swift
unowned(unsafe) var managedObjectContext: NSManagedObjectContext? { get }
Objective C
@property(nonatomic, readonly, assign) NSManagedObjectContext *managedObjectContext
Обсуждение
Может быть
nil
если получатель был удален из его контекста.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
hasChanges
СвойствоБулево значение, указывающее, был ли получатель вставлен, было удалено или не сохранило изменения. (только для чтения)
Объявление
Swift
var hasChanges: Bool { get }
Objective C
@property(nonatomic, readonly) BOOL hasChanges
Обсуждение
YES
true
если получатель был вставлен, был удален или не сохранил изменения, иначеNO
false
. Результатом является эквивалент осуществления операции ИЛИ значенияinserted
,deleted
, иupdated
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 5.0 и позже.
См. также
-
inserted
СвойствоБулево значение, указывающее, был ли получатель вставлен в контекст управляемого объекта. (только для чтения)
Объявление
Swift
var inserted: Bool { get }
Objective C
@property(nonatomic, getter=isInserted, readonly) BOOL inserted
Обсуждение
YES
true
если получатель был вставлен в контекст управляемого объекта, иначеNO
false
. Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
updated
СвойствоБулево значение, указывающее, не сохранил ли получатель изменения. (только для чтения)
Объявление
Swift
var updated: Bool { get }
Objective C
@property(nonatomic, getter=isUpdated, readonly) BOOL updated
Обсуждение
YES
true
если получатель не сохранил изменения, иначеNO
false
. Получатель не сохранил изменения, если он был обновлен, так как его контекст управляемого объекта был в последний раз сохранен.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
deleted
СвойствоБулево значение, указывающее, будет ли получатель удален во время следующего сохранения. (только для чтения)
Объявление
Swift
var deleted: Bool { get }
Objective C
@property(nonatomic, getter=isDeleted, readonly) BOOL deleted
Обсуждение
YES
true
если Базовые Данные попросят, чтобы персистентное хранилище удалило объект во время следующей работы сохранения, иначеNO
false
. Это может возвратитьсяNO
false
в других случаях особенно после того, как объект был удален. Непосредственность, с которой это прекратит возвращатьсяYES
true
зависит от того, где объект находится в процессе того, чтобы быть удаленным.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 8.0 и позже.
См. также
– isFault
вставленный
обновленный
deletedObjects
(NSManagedObjectContext
)NSManagedObjectContextObjectsDidChangeNotification
(NSManagedObjectContext
) -
fault
СвойствоБулево значение, указывающее, является ли получатель отказом. (только для чтения)
Объявление
Swift
var fault: Bool { get }
Objective C
@property(nonatomic, getter=isFault, readonly) BOOL fault
Обсуждение
YES
true
если получатель является отказом, иначеNO
false
. Знание, является ли объект отказом, полезно во многих ситуациях, когда вычисления являются дополнительными. Это может также использоваться, чтобы избежать увеличивать граф объектов излишне (который может улучшить производительность, поскольку это может избежать длительных выборок из хранилищ данных).Если это свойство
NO
false
, тогда данные получателя должны быть в памяти. Однако, если это свойствоYES
true
, это не означает, что данные не находятся в памяти. Данные могут быть в памяти, или это не может, в зависимости от многих факторов, влияющих на кэширование.Если получатель является отказом, получение доступ к этому свойству не заставляет его стрелять.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 8.0 и позже.
-
faultingState
СвойствоДающее сбой состояние получателя. (только для чтения)
Объявление
Swift
var faultingState: Int { get }
Objective C
@property(nonatomic, readonly) NSUInteger faultingState
Возвращаемое значение
0
если объект полностью инициализируется как управляемый объект и не переходящий к или от другого состояния, иначе некоторое другое значение.Обсуждение
0
если объект полностью инициализируется как управляемый объект и не переходящий к или от другого состояния, иначе некоторое другое значение. Это свойство позволяет Вам определять, находится ли объект в переходной фазе при получении значения ключа, наблюдая уведомление изменения.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Возвращает булево значение, указывающее, является ли отношение для данного ключа отказом.
Объявление
Swift
func hasFaultForRelationshipNamed(_
key
: String) -> BoolObjective C
- (BOOL)hasFaultForRelationshipNamed:(NSString *)
key
Параметры
key
Имя одного из отношений получателя.
Возвращаемое значение
YES
true
если отношение для для ключаkey
отказ, иначеNO
false
.Обсуждение
Если указанное отношение является отказом, вызывание этого метода не приводит к увольнению отказа.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает булево значение, указывающее, должны ли экземпляры класса быть отмечены как имеющие изменения, если изменяется несмоделированное свойство.
Объявление
Swift
class func contextShouldIgnoreUnmodeledPropertyChanges() -> Bool
Objective C
+ (BOOL)contextShouldIgnoreUnmodeledPropertyChanges
Возвращаемое значение
NO
false
если несмоделированное свойство изменяется, иначе, если экземпляры класса должны быть отмечены как имеющие измененияYES
true
.Обсуждение
Значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
– changedValuesForCurrentEvent
hasChanges
(NSManagedObjectContext
) -
Вызванный автоматически Базовой платформой Данных после того, как получатель был выбран.
Объявление
Swift
func awakeFromFetch()
Objective C
- (void)awakeFromFetch
Обсуждение
Вы обычно используете этот метод, чтобы вычислить полученные значения или воссоздать переходные отношения от персистентных свойств получателя.
Обработка изменения контекста управляемого объекта явно отключена вокруг этого метода так, чтобы можно было использовать общедоступные методы set для установления переходных значений и других кэшей без dirtying объект или его контекст. Из-за этого, однако, Вы не должны изменять отношения в этом методе, поскольку не будет установлена инверсия.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Вызванный автоматически Базовой платформой Данных, когда получатель сначала вставляется в контекст управляемого объекта.
Объявление
Swift
func awakeFromInsert()
Objective C
- (void)awakeFromInsert
Обсуждение
Вы обычно используете этот метод для инициализации специальных значений свойств по умолчанию. Этот метод вызывается только один раз во времени жизни объекта.
Если Вы хотите установить значения атрибута в реализации этого метода, необходимо обычно использовать примитивные методы доступа (также
setPrimitiveValue:forKey:
или — лучше — надлежащие пользовательские примитивные средства доступа). Это гарантирует, что новые значения обрабатываются, поскольку базовая линия оценивает вместо того, чтобы быть зарегистрированной как невыполнимые изменения для рассматриваемых свойств.Специальные замечания
Если Вы создаете управляемый объект, тогда выполняют операции отмены, чтобы принести контекст управляемого объекта к состоянию до создания объекта, затем выполнить операции восстановления для возвращения контекста управляемого объекта состоянию после создания объекта,
awakeFromInsert
не вызывается во второй раз.Вы обычно отговариваетесь выполнить выборки в реализации
awakeFromInsert
. Несмотря на то, что это позволяется, выполнение запроса выборки может инициировать отправку внутренних Базовых уведомлений Данных, которые могут иметь нежелательные побочные эффекты. Например, в OS X, экземпляреNSArrayController
может закончить тем, что вставил новый объект в довольный массив дважды.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Вызванный автоматически Базовой платформой Данных, когда получатель сбрасывается вследствие отмены, восстановления или другого изменения состояния мультисвойства.
Объявление
Swift
func awakeFromSnapshotEvents(_
flags
: NSSnapshotEventType)Objective C
- (void)awakeFromSnapshotEvents:(NSSnapshotEventType)
flags
Параметры
flags
Немного маски
didChangeValueForKey:
константы для обозначения события или событий, приведших к вызываемому методу.Для возможных значений посмотрите NSSnapshotEventType.
Обсуждение
Вы обычно используете этот метод, чтобы вычислить полученные значения или воссоздать переходные отношения от персистентных свойств получателя.
Если Вы хотите установить значения атрибута и должны избежать испускать уведомления изменения наблюдения значения ключа, необходимо использовать примитивные методы доступа (также
setPrimitiveValue:forKey:
или — лучше — надлежащие пользовательские примитивные средства доступа). Это гарантирует, что новые значения обрабатываются, поскольку базовая линия оценивает вместо того, чтобы быть зарегистрированной как невыполнимые изменения для рассматриваемых свойств.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Возвращает словарь, содержащий ключи и (старые) значения персистентных свойств, измененных начиная с последней выборки или сохранения получателя.
Объявление
Swift
func changedValues() -> [NSObject : AnyObject]
Objective C
- (NSDictionary *)changedValues
Возвращаемое значение
Словарь, содержащий, как включает имена персистентных свойств, изменившихся, так как получатель был в последний раз выбран или сохранен, и как значения новые значения свойств.
Обсуждение
Этот метод только сообщает об изменениях в свойствах, определяющихся как персистентные свойства получателя, не изменения в переходных свойствах или пользовательских переменных экземпляра. Этот метод излишне не запускает отказы отношения.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает словарь, содержащий ключи и старые значения персистентных свойств, изменившихся начиная с последней регистрации
NSManagedObjectContextObjectsDidChangeNotification
.Объявление
Swift
func changedValuesForCurrentEvent() -> [NSObject : AnyObject]
Objective C
- (NSDictionary *)changedValuesForCurrentEvent
Возвращаемое значение
Словарь, ключи которого являются именами персистентных свойств, изменившихся начиная с последней регистрации
NSManagedObjectContextObjectsDidChangeNotification
, и чьи значения являются старым значением персистентных свойств.Обсуждение
Этот метод только сообщает об изменениях в свойствах, определяющихся как персистентные свойства получателя, не изменения в переходных свойствах или пользовательских переменных экземпляра. Этот метод излишне не запускает отказы отношения.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 5.0 и позже.
См. также
-
Возвращает словарь последних выбранных или сохраненных значений получателя для свойств, указанных данными ключами.
Объявление
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
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных, когда получатель собирается быть удаленным.
Объявление
Swift
func prepareForDeletion()
Objective C
- (void)prepareForDeletion
Обсуждение
Можно реализовать этот метод для выполнения любых операций, требуемых, прежде чем объект будет удален, такие как пользовательское распространение, прежде чем отношения будут разъединены, или реконфигурирование объектов с помощью наблюдения значения ключа.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Освобождает память, занятую получателем.
Объявление
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
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных после того, как контекст управляемого объекта получателя завершает работу сохранения.
Объявление
Swift
func didSave()
Objective C
- (void)didSave
Обсуждение
Можно использовать этот метод, чтобы уведомить другие объекты после сохранения и вычислить переходные значения из персистентных значений.
Этот метод может иметь «побочные эффекты» на персистентных значениях, однако любые изменения, Вы делаете использующие стандартные методы доступа, будут по умолчанию грязный контекст управляемого объекта и оставлять Ваш контекст с несохраненными изменениями. Кроме того, если контекст объекта будет иметь менеджера по отмене, то такие изменения добавят работу отмены. Для основанных на документе приложений, изменения, внесенные в
didSave
поэтому войдет в следующую группировку отмены, которая может привести к «пустым» операциям отмены с точки зрения пользователя. Можно хотеть отключить регистрацию отмены для предотвращения этой проблемы.Смысл «сохранения» в имени метода является смыслом оператора фиксации базы данных и так применяется к удалениям, а также к обновлениям к объектам. Для подклассов этот метод является поэтому надлежащим местоположением для кода, который будет выполняться, когда объект удалил, а также «сохранил на диск». Можно узнать, отмечен ли объект для удаления с
isDeleted
.Специальные замечания
Вы не можете попытаться возродить удаленный объект в
didSave
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных, прежде чем получатель преобразовывается в отказ.
Объявление
Swift
func willTurnIntoFault()
Objective C
- (void)willTurnIntoFault
Обсуждение
Этот метод является компаньоном
didTurnIntoFault
метод. Можно использовать его для (ре) состояние набора, требующее доступа к значениям свойств (например, наблюдатели через ключевые пути). Реализация по умолчанию ничего не делает.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Вызванный автоматически Базовой платформой Данных, когда получатель превращен в отказ.
Объявление
Swift
func didTurnIntoFault()
Objective C
- (void)didTurnIntoFault
Обсуждение
Вы используете этот метод для убирания пользовательских кэшей данных — переходные значения, объявленные, поскольку свойства объекта обычно уже убираются к тому времени, когда этот метод вызывается (см., например,
refreshObject:mergeChanges:
).Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Возвращает значение для свойства, указанного
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
Доступность
Доступный в iOS 3.0 и позже.
-
Устанавливает указанное свойство получателя к указанному значению.
Объявление
Swift
func setValue(_
value
: AnyObject?, forKeykey
: String)Objective C
- (void)setValue:(id)
value
forKey:(NSString *)key
Параметры
value
Новое значение для свойства, указанного
key
.key
Имя одного из свойств получателя.
Обсуждение
Если
key
не свойство, определенное моделью, метод повышает исключение. Еслиkey
идентифицирует для - одно отношение, связывает объект, указанныйvalue
к получателю, не связывая ранее связанный объект, если был тот. Учитывая объект коллекции и ключ, идентифицирующий для - многие отношение, связывает объекты, содержавшиеся в наборе к получателю, не связывая ранее связанные объекты, если был кто-либо.Этот метод переопределяется
NSManagedObject
получить доступ к универсальному хранению словаря управляемого объекта, если класс получателя явно не обеспечивает значение ключа, кодирующее совместимые методы доступа дляkey
.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает непостоянный набор, обеспечивающий доступ для чтения-записи к неупорядоченному к - многие отношение, указанное данным ключом.
Объявление
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
Доступность
Доступный в iOS 3.0 и позже.
-
Наборы в частной внутренней памяти получателя значение данного свойства.
Объявление
Swift
func setPrimitiveValue(_
value
: AnyObject?, forKeykey
: String)Objective C
- (void)setPrimitiveValue:(id)
value
forKey:(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
Доступность
Доступный в iOS 3.0 и позже.
-
Проверяет значение свойства для данного ключа.
Объявление
Swift
func validateValue(_
value
: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeykey
: String, errorerror
: NSErrorPointer) -> BoolПараметры
value
Указатель на объект.
key
Имя одного из свойств получателя.
error
Если
value
не допустимое значение дляkey
(и не может быть принужден), по возврату содержит экземплярNSError
это описывает проблему.Возвращаемое значение
YES
true
еслиvalue
допустимое значение дляkey
(или еслиvalue
может быть принужден в допустимое значение дляkey
), иначеNO
false
.Обсуждение
Этот метод ответственен за две вещи: принуждение значения в надлежащий тип для объекта и проверки его согласно правилам объекта.
Реализация по умолчанию, предоставленная
NSManagedObject
консультируется с описанием объекта объекта, чтобы принудить значение и проверить на основные ошибки, такие как нулевое значение, когда это не позволяется и длина строк, когда ширина поля указана для атрибута. Это тогда ищет метод формыvalidate<Key>:error:
и вызывает его, если это существует.Можно реализовать методы формы
validate<Key>:error:
выполнять проверку, которая не является возможным использованием ограничений, доступных в описании свойства. Если это находит недопустимое значение, Ваш метод проверки должен возвратитьсяNO
false
и вerror
NSError
объект, описывающий проблему. Для получения дополнительной информации посмотрите Проверку Управляемого объекта. Для проверки межсвойства (для проверки на комбинации значений, которые недопустимы) посмотритеvalidateForUpdate:
и связанные методы.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Определяет, может ли получатель быть удален в его текущем состоянии.
Объявление
Swift
func validateForDelete(_
error
: NSErrorPointer) -> BoolObjective C
- (BOOL)validateForDelete:(NSError **)
error
Параметры
error
Если получатель не может быть удален в его текущем состоянии, по возврату содержит экземпляр
NSError
это описывает проблему.Возвращаемое значение
YES
true
если получатель может быть удален в его текущем состоянии, иначеNO
false
.Обсуждение
Объект не может быть удален, если он имеет отношение, имеет «отклонение», удаляют правило, и то отношение имеет целевой объект.
NSManagedObject
реализация отправляет описанию объекта получателя сообщение, выполняющее основную проверку на основе присутствия или отсутствия значений.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Определяет, может ли получатель быть вставлен в его текущее состояние.
Объявление
Swift
func validateForInsert(_
error
: NSErrorPointer) -> BoolObjective C
- (BOOL)validateForInsert:(NSError **)
error
Параметры
error
Если получатель не может быть вставлен в его текущее состояние, по возврату содержит экземпляр
NSError
это описывает проблему.Возвращаемое значение
YES
true
если получатель может быть вставлен в его текущее состояние, иначеNO
false
.Специальные замечания
Подклассы должны вызвать реализацию super прежде, чем выполнить их собственную проверку и должны объединить любую ошибку, возвращенную реализацией super с их собственным (см. Проверку Управляемого объекта).
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Определяет, допустимо ли текущее состояние получателя.
Объявление
Swift
func validateForUpdate(_
error
: NSErrorPointer) -> BoolObjective C
- (BOOL)validateForUpdate:(NSError **)
error
Параметры
error
Если текущее состояние получателя недопустимо, по возврату содержит экземпляр
NSError
это описывает проблему.Возвращаемое значение
YES
true
если текущее состояние получателя допустимо, иначеNO
false
.Обсуждение
NSManagedObject
реализация выполняет итерации через все свойства получателя, проверяющие каждого поочередно. Если это приводит больше чем к одной ошибке,userInfo
словарь вNSError
возвращенный вerror
содержит ключNSDetailedErrorsKey
; соответствующее значение является массивом, содержащим отдельные ошибки проверки. Если Вы передаетеNULL
как ошибка, проверка прервется после первого отказа.Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Возвращает булево значение, указывающее, предоставляет ли получатель автоматическую поддержку для значения ключа, наблюдая уведомления изменения для данного ключа.
Объявление
Objective C
+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)
key
Параметры
key
Имя одного из свойств получателя.
Возвращаемое значение
YES
true
если получатель предоставляет автоматическую поддержку для значения ключа, наблюдая уведомления изменения дляkey
, иначеNO
false
.Обсуждение
Реализация по умолчанию для
NSManagedObject
возвратыNO
false
для смоделированных свойств, иYES
true
для несмоделированных свойств. Для больше о наблюдении значения ключа, посмотрите, что Значение ключа Наблюдает Руководство по программированию. -
Предоставляет поддержку для значения ключа, наблюдая уведомление доступа.
Объявление
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
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
- observationInfo
Доступный в iOS 3.0 через iOS 7.1Возвращает информацию наблюдения получателя.
Объявление
Objective C
- (id)observationInfo
Возвращаемое значение
Информация наблюдения получателя.
Обсуждение
Для больше о наблюдении значения ключа, посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Оператор импорта
Objective C
@import CoreData;
Доступность
Доступный в iOS 3.0 через iOS 7.1.
См. также
-
- setObservationInfo:
Доступный в iOS 3.0 через iOS 7.1Устанавливает информацию наблюдения получателя.
Объявление
Objective C
- (void)setObservationInfo:(id)
value
Параметры
value
Новая информация наблюдения для получателя.
Обсуждение
Для больше об информации о наблюдении, посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Оператор импорта
Objective C
@import CoreData;
Доступность
Доступный в iOS 3.0 через iOS 7.1.
См. также
-
Предоставляет поддержку для значения ключа, наблюдая уведомление доступа.
Объявление
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
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Вызванный, чтобы сообщить получателю, что изменилось значение данного свойства.
Объявление
Swift
func didChangeValueForKey(_
key
: String)Objective C
- (void)didChangeValueForKey:(NSString *)
key
Параметры
key
Имя изменившегося свойства.
Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
didChangeValueForKey (_: withSetMutation:usingObjects:) - didChangeValueForKey:withSetMutation:usingObjects:
Вызванный, чтобы сообщить получателю, что указанное изменение было внесено в указанное к - многие отношение.
Объявление
Swift
func didChangeValueForKey(_
inKey
: String, withSetMutationinMutationKind
: NSKeyValueSetMutationKind, usingObjectsinObjects
: Set<NSObject>)Objective C
- (void)didChangeValueForKey:(NSString *)
inKey
withSetMutation:(NSKeyValueSetMutationKind)inMutationKind
usingObjects:(NSSet *)inObjects
Параметры
inKey
Имя свойства, которое является к - многие отношение.
inMutationKind
Тип внесенного изменения.
inObjects
Объекты, вовлеченные в изменение (см.
NSKeyValueSetMutationKind
).Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Вызванный, чтобы сообщить получателю, что значение данного свойства собирается измениться.
Объявление
Swift
func willChangeValueForKey(_
key
: String)Objective C
- (void)willChangeValueForKey:(NSString *)
key
Параметры
key
Имя свойства, которое изменится.
Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
willChangeValueForKey (_: withSetMutation:usingObjects:) - willChangeValueForKey:withSetMutation:usingObjects:
Вызванный, чтобы сообщить получателю, что указанное изменение собирается быть внесенным в указанное к - многие отношение.
Объявление
Swift
func willChangeValueForKey(_
inKey
: String, withSetMutationinMutationKind
: NSKeyValueSetMutationKind, usingObjectsinObjects
: Set<NSObject>)Objective C
- (void)willChangeValueForKey:(NSString *)
inKey
withSetMutation:(NSKeyValueSetMutationKind)inMutationKind
usingObjects:(NSSet *)inObjects
Параметры
inKey
Имя свойства, которое является к - многие отношение
inMutationKind
Тип изменения, которое будет внесено.
inObjects
Объекты, вовлеченные в изменение (см.
NSKeyValueSetMutationKind
).Обсуждение
Для получения дополнительной информации посмотрите, что Значение ключа Наблюдает Руководство по программированию.
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-
Константы возвратились из
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;
Константы
-
UndoInsertion
NSSnapshotEventUndoInsertion
Указывает изменение вследствие отмены от вставки.
Доступный в iOS 3.0 и позже.
-
UndoDeletion
NSSnapshotEventUndoDeletion
Указывает изменение вследствие отмены от удаления.
Доступный в iOS 3.0 и позже.
-
UndoUpdate
NSSnapshotEventUndoUpdate
Указывает изменение вследствие отмены уровня свойства.
Доступный в iOS 3.0 и позже.
-
Rollback
NSSnapshotEventRollback
Указывает изменение вследствие откатываемого контекста управляемого объекта.
Доступный в iOS 3.0 и позже.
-
Refresh
NSSnapshotEventRefresh
Указывает изменение вследствие обновляемого управляемого объекта.
Доступный в iOS 3.0 и позже.
-
MergePolicy
NSSnapshotEventMergePolicy
Указывает изменение вследствие разрешения конфликтов во время работы сохранения.
Доступный в iOS 3.0 и позже.
Оператор импорта
Objective C
@import CoreData;
Swift
import CoreData
Доступность
Доступный в iOS 3.0 и позже.
-