NSIncrementalStore
Наследование
-
NSObject -
NSPersistentStore -
NSIncrementalStore
-
NSObject -
NSPersistentStore -
NSIncrementalStore
Оператор импорта
Swift
import CoreData
Objective C
@import CoreData;
Доступность
Доступный в iOS 5.0 и позже.
NSIncrementalStore абстрактный суперкласс, определяющий API, через который Базовые Данные связываются с хранилищем. Этот интерфейс разработан, чтобы позволить Вам создавать персистентные хранилища, загружающие и сохраняющие данные инкрементно, допуская управление большими и/или совместно используемыми наборами данных. См. Инкрементное Руководство по программированию Хранилища для стратегии реализации и методов наиболее успешной практики при реализации собственного инкрементного хранилища.
Разделение на подклассы примечаний
Методы для переопределения
В подклассе NSIncrementalStore, необходимо переопределить следующие методы для обеспечения поведения, подходящего для хранилища:
Нет никакой потребности переопределить методы, из которых необходимо иначе переопределить для подкласса NSPersistentStore.
-
Загружает метаданные для хранилища.
Объявление
Swift
func loadMetadata(_error: NSErrorPointer) -> BoolObjective C
- (BOOL)loadMetadata:(NSError **)errorПараметры
errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
YEStrueесли метаданные были правильно загружены, иначеNOfalse.Обсуждение
В Вашей реализации этого метода необходимо проверить это, URL, используемый для создания хранилища, применим (расположение существует и, если необходимо перезаписываемо, схема совместима, и т.д.), и возвратите ошибку, если существует проблема.
Любой подкласс
NSIncrementalStoreто, которое основано на файле, должно быть в состоянии обработать быть инициализированным с URL, указывающим на файл нулевой длины. Это служит индикатором, что новое хранилище должно быть создано в указанном расположении и позволяет приложения с помощью хранилища для безопасного создания файлов резервирования в известных расположениях.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Если запрос не может быть завершен, возвращает значение как подходящее для данного запроса, или ноля.
Объявление
Swift
func executeRequest(_request: NSPersistentStoreRequest, withContextcontext: NSManagedObjectContext, errorerror: NSErrorPointer) -> AnyObject?Objective C
- (id)executeRequest:(NSPersistentStoreRequest *)requestwithContext:(NSManagedObjectContext *)contexterror:(NSError **)errorПараметры
requestЗапрос выборки.
contextКонтекст управляемого объекта раньше выполнялся
request.errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Значение как подходящее для
request, илиnilесли не может быть завершен запросОбсуждение
Значение для возврата зависит от типа результата (см.
resultType) изrequest:Если это
NSManagedObjectResultType,NSManagedObjectIDResultType, илиNSDictionaryResultType, метод должен возвратить массив, содержащий все объекты в хранилище, соответствующем запрос.Если это
NSCountResultType, метод должен возвратить массив, содержащийNSNumberчье значение является количеством всех объектов в хранилище, соответствующем запрос.Если запрос является запросом сохранения, метод должен возвратить пустой массив.
Если запрос сохранения содержит нулевые значения для вставленных/обновленных/удаленных/заблокированных наборов; необходимо обработать его как запрос для сохранения метаданных хранилища.
Необходимо реализовать этот метод консервативно и ожидать, что неизвестные типы запроса могут в некоторый момент быть переданы методу. Корректное поведение в этих случаях состоит в том, чтобы возвратиться
nilи ошибка.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Возвращает инкрементный узел хранилища, инкапсулирующий персистентные внешние значения объекта с данным идентификатором объекта.
Объявление
Swift
func newValuesForObjectWithID(_objectID: NSManagedObjectID, withContextcontext: NSManagedObjectContext, errorerror: NSErrorPointer) -> NSIncrementalStoreNode?Objective C
- (NSIncrementalStoreNode *)newValuesForObjectWithID:(NSManagedObjectID *)objectIDwithContext:(NSManagedObjectContext *)contexterror:(NSError **)errorПараметры
objectIDID объекта, на который требуют значения.
contextКонтекст управляемого объекта, в который будут возвращены значения.
errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Инкрементный узел хранилища, инкапсулирующий персистентные внешние значения объекта с идентификатором объекта
objectID, илиnilесли не может быть найден соответствующий объект.Обсуждение
Возвращенный узел должен включать все значения атрибутов и может включать в - значения отношения как экземпляры
NSManagedObjectID.Если объект с идентификатором объекта
objectIDне может быть найден, метод должен возвратитьсяnilи — еслиerrorнеNULL— создайте и возвратите надлежащий ошибочный объект вerror.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
newValueForRelationship (_: forObjectWithID:withContext:error:) - newValueForRelationship:forObjectWithID:withContext:error:Возвращает отношение для данного отношения объекта с данным идентификатором объекта.
Объявление
Swift
func newValueForRelationship(_relationship: NSRelationshipDescription, forObjectWithIDobjectID: NSManagedObjectID, withContextcontext: NSManagedObjectContext?, errorerror: NSErrorPointer) -> AnyObject?Objective C
- (id)newValueForRelationship:(NSRelationshipDescription *)relationshipforObjectWithID:(NSManagedObjectID *)objectIDwithContext:(NSManagedObjectContext *)contexterror:(NSError **)errorПараметры
relationshipОтношение, на которое требуют значения.
objectIDID объекта, на который требуют значения.
contextКонтекст управляемого объекта, в который будут возвращены значения.
errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Значение отношения указано
relationshipиз объекта с идентификатором объектаobjectID, илиnilесли происходит ошибка.Обсуждение
Если отношение к - один, метод должен возвратиться
NSManagedObjectIDэкземпляр, идентифицирующий место назначения или экземплярNSNullесли значение отношенияnil.Если отношение к - многие, метод должен возвратить объект коллекции, содержащий
NSManagedObjectIDэкземпляры для идентификации связанных объектов. ИспользуяNSArrayэкземпляр предпочтен, потому что это будет самым эффективным. Хранилище может также возвратить экземплярNSSetилиNSOrderedSet; экземплярNSDictionaryне приемлемо.Если объект с идентификатором объекта
objectIDне может быть найден, метод должен возвратитьсяnilи — еслиerrorнеNULL— создайте и возвратите надлежащий ошибочный объект вerror.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Возвращает массив, содержащий идентификаторы объектов для данного массива недавно-вставленных-объектов.
Объявление
Swift
func obtainPermanentIDsForObjects(_array: [AnyObject], errorerror: NSErrorPointer) -> [AnyObject]?Параметры
arrayМассив недавно-вставленных-объектов.
errorЕсли ошибка происходит, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
Массив, содержащий идентификаторы объектов для объектов в
array.Возвращенный массив должен возвратить идентификаторы объектов в том же порядке, как объекты появляются в
array.Обсуждение
Этот метод вызывают прежде
executeRequest:withContext:error:с запросом сохранения, для присвоения постоянного IDs недавно-вставленным-объектам.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Возвращает идентификатор для хранилища в данном URL.
Объявление
Swift
class func identifierForNewStoreAtURL(_storeURL: NSURL) -> AnyObjectObjective C
+ (id)identifierForNewStoreAtURL:(NSURL *)storeURLПараметры
storeURLURL персистентного хранилища.
Возвращаемое значение
Идентификатор для хранилища в
storeURL.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Указывает, что объекты, идентифицированные данным массивом идентификаторов объектов, используются в контексте управляемого объекта.
Объявление
Swift
func managedObjectContextDidRegisterObjectsWithIDs(_objectIDs: [AnyObject])Objective C
- (void)managedObjectContextDidRegisterObjectsWithIDs:(NSArray *)objectIDsПараметры
objectIDsМассив идентификаторов объектов.
Обсуждение
Этот метод и
managedObjectContextDidUnregisterObjectsWithIDs:позвольте контекстам управляемого объекта передавать интерес к данным строки конкретных объектов способом, сродни подсчету ссылок. Для получения дополнительной информации посмотритеmanagedObjectContextDidUnregisterObjectsWithIDs:.Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
managedObjectContextDidUnregisterObjectsWithIDs (_:) - managedObjectContextDidUnregisterObjectsWithIDs:Указывает, что объекты, идентифицированные данным массивом идентификаторов объектов, больше не используются контекстом управляемого объекта.
Объявление
Swift
func managedObjectContextDidUnregisterObjectsWithIDs(_objectIDs: [AnyObject])Objective C
- (void)managedObjectContextDidUnregisterObjectsWithIDs:(NSArray *)objectIDsПараметры
objectIDsМассив идентификаторов объектов.
Обсуждение
Этот метод является дубликатом к
managedObjectContextDidRegisterObjectsWithIDs:.Передача идентификатора объекта в массиве идентификаторов объектов
managedObjectContextDidRegisterObjectsWithIDs:сродни постепенному увеличению подсчета ссылок идентификатора объекта 1; передача идентификатора объекта в массиве идентификаторов объектовmanagedObjectContextDidUnregisterObjectsWithIDs:сродни постепенному уменьшению подсчета ссылок идентификатора объекта 1. Только, когда подсчет ссылок идентификатора объекта не является 0 никакими контекстами, указывают, что они используют соответствующий управляемый объект. (Идентификаторы объектов запускаются с подсчета ссылок 0.)Например, если методы регистра вызываются на два случая, когда массив идентификаторов объектов содержит данный идентификатор объекта, и метод нерегистра вызывается один раз, когда массив идентификаторов объектов содержит тот идентификатор объекта, тогда контекст все еще использует объект с данным ID.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Возвращает новый идентификатор объекта, использующий определенные данные в качестве ключа.
Объявление
Swift
func newObjectIDForEntity(_entity: NSEntityDescription, referenceObjectdata: AnyObject) -> NSManagedObjectIDObjective C
- (NSManagedObjectID *)newObjectIDForEntity:(NSEntityDescription *)entityreferenceObject:(id)dataПараметры
entityОбъект для нового идентификатора объекта.
dataОбъект типа
NSStringилиNSNumberиспользовать в качестве ключа.Возвращаемое значение
Новый идентификатор объекта для экземпляра объекта, указанного
entityи это используетdataкак ключ.Обсуждение
Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
-
Возвращается справочные данные раньше создавали данный идентификатор объекта.
Объявление
Swift
func referenceObjectForObjectID(_objectID: NSManagedObjectID) -> AnyObjectObjective C
- (id)referenceObjectForObjectID:(NSManagedObjectID *)objectIDПараметры
objectIDИдентификатор объекта создается получателем.
Возвращаемое значение
Справочные данные раньше создавали, возразил.
Обсуждение
Этот метод повышает
NSInvalidArgumentExceptionесли идентификатор объекта не создавался хранилищем получения.Вы не должны переопределять этот метод.
Оператор импорта
Objective C
@import CoreData;Swift
import CoreDataДоступность
Доступный в iOS 5.0 и позже.
