NSPersistentDocument
NSPersistentDocument класс является подклассом NSDocument это разработано для простой интеграции в Базовую платформу Данных. Это обеспечивает методы для доступа ко всего документа NSManagedObjectContext объект, и обеспечивает реализации по умолчанию методов, чтобы считать и записать файлы с помощью платформы персистентности. В персистентном документе менеджер по отмене функциональность принята контекстом управляемого объекта.
Стандартное поведение документа реализовано следующим образом:
Открытие документа вызывает
configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:с новым URL, и добавляет хранилище типа по умолчанию (XML). Объекты загружаются из персистентного хранилища по требованию через контекст документа.Сохранение нового документа добавляет хранилище типа по умолчанию с выбранным URL и вызывает, сохраните: на контексте. Для существующего документа сохранение просто вызывает
save:на контексте.Сохраните Что касается нового документа, просто вызывает, сохраняют. Для открытого документа это перемещает персистентное хранилище на новый URL и вызывает
save:на контексте.Вернитесь сбрасывает контекст управляемого объекта документа. Объекты впоследствии загружаются из персистентного хранилища по требованию, как с открытием нового документа.
По умолчанию NSPersistentDocument экземпляр создает свой собственный готовый к использованию штабель персистентности включая контекст управляемого объекта, координатора хранилища постоянного объекта и персистентное хранилище. Существует непосредственное отображение между документом и отступающей объектно-ориентированной памятью.
Можно настроить архитектуру штабеля персистентности путем переопределения методов managedObjectModel и configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:. Вы могли бы хотеть сделать это, например, указать определенную модель управляемого объекта.
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSFilePresenter -
NSObjectProtocol -
NSUserInterfaceValidations -
Печатаемый -
NSFilePresenter -
NSObject -
NSUserInterfaceValidations
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.4 и позже.
-
managedObjectContext managedObjectContextСвойствоКонтекст управляемого объекта для документа.
Объявление
Swift
var managedObjectContext: NSManagedObjectContext!Objective C
@property(strong) NSManagedObjectContext *managedObjectContextОбсуждение
Если контекст управляемого объекта для документа не существует, каждый создается автоматически. Если Вы хотите настроить создание штабеля персистентности, повторно реализуйте это свойство в своем пользовательском подклассе и используйте Вашу реализацию для создания надлежащих объектов.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
См. также
-
managedObjectModel managedObjectModelСвойствоМодель управляемого объекта документа. (только для чтения)
Объявление
Swift
var managedObjectModel: AnyObject! { get }Objective C
@property(readonly, strong) id managedObjectModelОбсуждение
По умолчанию Базовая платформа Данных создает объединенную модель из всех моделей в комплекте приложений (
[NSBundle mainBundle]). Можно повторно реализовать это свойство и возвратить определенную модель для использования для создания персистентных хранилищ. Типичная реализация могла бы включать код, подобный следующему фрагменту:NSBundle *bundle = [NSBundle bundleForClass:[self class]];NSString *path = [bundle pathForResource:@"MyModel" ofType:@"mom"];NSURL *url = [NSURL fileURLWithPath:path];NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:url];
Специальные замечания
В приложениях основывался на OS X v10.4, по умолчанию Базовая платформа Данных создает объединенную модель из всех моделей, найденных в комплекте приложений и платформах, против которых соединяется приложение.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
См. также
-
configurePersistentStoreCoordinatorForURL (_: ofType:modelConfiguration:storeOptions:error:) - configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:Конфигурирует персистентного координатора хранилища получателя с надлежащими хранилищами для данного URL.
Объявление
Swift
func configurePersistentStoreCoordinatorForURL(_url: NSURL!, ofTypefileType: String!, modelConfigurationconfiguration: String?, storeOptionsstoreOptions: [NSObject : AnyObject]!, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)configurePersistentStoreCoordinatorForURL:(NSURL *)urlofType:(NSString *)fileTypemodelConfiguration:(NSString *)configurationstoreOptions:(NSDictionary *)storeOptionserror:(NSError **)errorПараметры
urlURL, указывающий расположение хранилища документа.
fileTypeТип документа.
configurationИмя конфигурации модели управляемого объекта для использования. (Модель управляемого объекта связана с персистентным координатором хранилища.) Передача
nilесли Вы не хотите указывать конфигурацию.storeOptionsОпции для хранилища. См. “Опции Хранилища” в
NSPersistentStoreCoordinatorдля возможных значений.errorЕсли метод не завершается успешно, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
YEStrueесли метод завершается успешно, иначеNOfalse.Обсуждение
Когда существующий документ открыт, этот метод вызывается автоматически. Вы переопределяете этот метод для настройки создания персистентного хранилища для данного документа или типа хранилища. Можно получить персистентного координатора хранилища со следующим кодом:
[[self managedObjectContext] persistentStoreCoordinator];
Можно переопределить этот метод для создания хранилища для сохранения к или загрузка из (вызванный из другого
NSDocumentметоды к файлам чтения-записи), который предоставляет разработчикам возможность загрузить/сохранить из/в различные персистентные типы хранилища (тип по умолчанию является XML).Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает тип персистентного хранилища, связанного с указанным типом файла.
Объявление
Параметры
fileTypeТип файла документа.
Возвращаемое значение
Тип персистентного хранилища связался с
fileType. Для возможных значений посмотритеNSPersistentStoreCoordinator.Обсуждение
Вы устанавливаете персистентный тип хранилища в списке свойств приложения.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
-
Возвраты
YEStrue.Объявление
Objective C
- (BOOL)hasUndoManagerВозвращаемое значение
YEStrue.Специальные замечания
Вы не должны переопределять этот метод.
См. также
-
Переопределенный, чтобы быть нет.
Объявление
Objective C
- (void)setHasUndoManager:(BOOL)flagПараметры
flagЭто значение проигнорировано.
Специальные замечания
Вы не должны переопределять этот метод. Персистентный документ использует менеджера по отмене контекста управляемого объекта.
См. также
-
Переопределенный, чтобы быть нет.
Объявление
Objective C
- (void)setUndoManager:(NSUndoManager *)undoManagerПараметры
undoManagerЭто значение проигнорировано.
Специальные замечания
Вы не должны переопределять этот метод. Персистентный документ использует менеджера по отмене контекста управляемого объекта.
См. также
-
Возвращает булево значение, указывающее, отменил ли контекст управляемого объекта получателя или редакторы, зарегистрированные в контексте, фиксацию изменений.
Объявление
Objective C
- (BOOL)isDocumentEditedВозвращаемое значение
YEStrueесли контекст управляемого объекта получателя или редакторы, зарегистрированные в контексте, отменил фиксацию изменений, иначеNOfalse.См. также
-
Устанавливает содержание получателя путем чтения из файла данного типа, расположенного данным URL.
Объявление
Параметры
absoluteURLURL, указывающий расположение, из которого можно считать документ.
typeNameТип документа в
absoluteURL.outErrorЕсли
absoluteURLне допустимо, или хранилище вabsoluteURLне может быть считан, по возврату содержитNSErrorобъект, описывающий проблемуВозвращаемое значение
YEStrueеслиabsoluteURLдопустимо, и файл читается правильно, иначеNOfalse.Обсуждение
Этот метод устанавливает URL для хранилища постоянного объекта, связанного с контекстом управляемого объекта получателя к
absoluteURL.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
-
Переопределенный для очистки контекста управляемого объекта и контроллеров во время того, чтобы возвращаться.
Объявление
Параметры
inAbsoluteURLОбъект URL, указывающий расположение файла, к которому можно вернуться.
inTypeNameТип документа в
inAbsoluteURL.outErrorЕсли сбои метода для завершения правильно, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
YEStrueесли метод завершается правильно, иначеNOfalse.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
-
writeToURL (_: ofType:forSaveOperation:originalContentsURL:error:) - writeToURL:ofType:forSaveOperation:originalContentsURL:error:Сохраняет изменения в контексте управляемого объекта документа и сохраняет персистентное хранилище документа к данному URL.
Объявление
Swift
func writeToURL(_absoluteURL: NSURL!, ofTypetypeName: String!, forSaveOperationsaveOperation: NSSaveOperationType, originalContentsURLabsoluteOriginalContentsURL: NSURL!, errorerror: NSErrorPointer) -> BoolObjective C
- (BOOL)writeToURL:(NSURL *)absoluteURLofType:(NSString *)typeNameforSaveOperation:(NSSaveOperationType)saveOperationoriginalContentsURL:(NSURL *)absoluteOriginalContentsURLerror:(NSError **)errorПараметры
absoluteURLURL, указывающий новое расположение для хранилища документа. Это не должен быть относительный URL.
typeNameТип документа.
saveOperationТип работы сохранения. Посмотрите раздел «Constants» в
NSDocumentдля возможных значений.absoluteOriginalContentsURLURL, указывающий расположение хранилища оригинала документа.
errorЕсли сбои сохранения для завершения правильно, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
YEStrueесли сохранение завершается правильно, иначеNOfalse.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
-
canAsynchronouslyWriteToURL:ofType:forSaveOperation: - canAsynchronouslyWriteToURL:ofType:forSaveOperation:Возвраты
NOfalse.Объявление
Objective C
- (BOOL)canAsynchronouslyWriteToURL:(NSURL *)urlofType:(NSString *)typeNameforSaveOperation:(NSSaveOperationType)saveOperationВозвращаемое значение
NOfalse.Обсуждение
NSPersistentDocumentне поддерживает асинхронные операции сохранения. Вы не должны переопределять этот метод.
-
configurePersistentStoreCoordinatorForURL:ofType:error: - configurePersistentStoreCoordinatorForURL:ofType:error:(OS X v10.5)Конфигурирует персистентного координатора хранилища получателя для данного URL и типа документа.
Оператор осуждения
Использовать
configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:вместо этого.Объявление
Параметры
urlURL, указывающий расположение хранилища документа.
fileTypeТип документа.
errorЕсли метод не завершается успешно, по возврату содержит
NSErrorобъект, описывающий проблему.Возвращаемое значение
YEStrueесли метод завершается успешно, иначеNOfalse.Обсуждение
Когда существующий документ открыт, этот метод вызывается автоматически. Вы переопределяете этот метод для настройки создания персистентного хранилища для данного документа или типа хранилища. Можно получить персистентного координатора хранилища со следующим кодом:
[[self managedObjectContext] persistentStoreCoordinator];
Оператор импорта
Objective C
@import AppKit;Доступность
Доступный в OS X v10.4 и позже.
Осуждаемый в OS X v10.5.
