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 *)
url
ofType:(NSString *)fileType
modelConfiguration:(NSString *)configuration
storeOptions:(NSDictionary *)storeOptions
error:(NSError **)error
Параметры
url
URL, указывающий расположение хранилища документа.
fileType
Тип документа.
configuration
Имя конфигурации модели управляемого объекта для использования. (Модель управляемого объекта связана с персистентным координатором хранилища.) Передача
nil
если Вы не хотите указывать конфигурацию.storeOptions
Опции для хранилища. См. “Опции Хранилища” в
NSPersistentStoreCoordinator
для возможных значений.error
Если метод не завершается успешно, по возврату содержит
NSError
объект, описывающий проблему.Возвращаемое значение
YES
true
если метод завершается успешно, иначеNO
false
.Обсуждение
Когда существующий документ открыт, этот метод вызывается автоматически. Вы переопределяете этот метод для настройки создания персистентного хранилища для данного документа или типа хранилища. Можно получить персистентного координатора хранилища со следующим кодом:
[[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 и позже.
-
Возвраты
YES
true
.Объявление
Objective C
- (BOOL)hasUndoManager
Возвращаемое значение
YES
true
.Специальные замечания
Вы не должны переопределять этот метод.
См. также
-
Переопределенный, чтобы быть нет.
Объявление
Objective C
- (void)setHasUndoManager:(BOOL)
flag
Параметры
flag
Это значение проигнорировано.
Специальные замечания
Вы не должны переопределять этот метод. Персистентный документ использует менеджера по отмене контекста управляемого объекта.
См. также
-
Переопределенный, чтобы быть нет.
Объявление
Objective C
- (void)setUndoManager:(NSUndoManager *)
undoManager
Параметры
undoManager
Это значение проигнорировано.
Специальные замечания
Вы не должны переопределять этот метод. Персистентный документ использует менеджера по отмене контекста управляемого объекта.
См. также
-
Возвращает булево значение, указывающее, отменил ли контекст управляемого объекта получателя или редакторы, зарегистрированные в контексте, фиксацию изменений.
Объявление
Objective C
- (BOOL)isDocumentEdited
Возвращаемое значение
YES
true
если контекст управляемого объекта получателя или редакторы, зарегистрированные в контексте, отменил фиксацию изменений, иначеNO
false
.См. также
-
Устанавливает содержание получателя путем чтения из файла данного типа, расположенного данным URL.
Объявление
Параметры
absoluteURL
URL, указывающий расположение, из которого можно считать документ.
typeName
Тип документа в
absoluteURL
.outError
Если
absoluteURL
не допустимо, или хранилище вabsoluteURL
не может быть считан, по возврату содержитNSError
объект, описывающий проблемуВозвращаемое значение
YES
true
еслиabsoluteURL
допустимо, и файл читается правильно, иначеNO
false
.Обсуждение
Этот метод устанавливает URL для хранилища постоянного объекта, связанного с контекстом управляемого объекта получателя к
absoluteURL
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Переопределенный для очистки контекста управляемого объекта и контроллеров во время того, чтобы возвращаться.
Объявление
Параметры
inAbsoluteURL
Объект URL, указывающий расположение файла, к которому можно вернуться.
inTypeName
Тип документа в
inAbsoluteURL
.outError
Если сбои метода для завершения правильно, по возврату содержит
NSError
объект, описывающий проблему.Возвращаемое значение
YES
true
если метод завершается правильно, иначеNO
false
.Оператор импорта
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 *)
absoluteURL
ofType:(NSString *)typeName
forSaveOperation:(NSSaveOperationType)saveOperation
originalContentsURL:(NSURL *)absoluteOriginalContentsURL
error:(NSError **)error
Параметры
absoluteURL
URL, указывающий новое расположение для хранилища документа. Это не должен быть относительный URL.
typeName
Тип документа.
saveOperation
Тип работы сохранения. Посмотрите раздел «Constants» в
NSDocument
для возможных значений.absoluteOriginalContentsURL
URL, указывающий расположение хранилища оригинала документа.
error
Если сбои сохранения для завершения правильно, по возврату содержит
NSError
объект, описывающий проблему.Возвращаемое значение
YES
true
если сохранение завершается правильно, иначеNO
false
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
canAsynchronouslyWriteToURL:ofType:forSaveOperation: - canAsynchronouslyWriteToURL:ofType:forSaveOperation:
Возвраты
NO
false
.Объявление
Objective C
- (BOOL)canAsynchronouslyWriteToURL:(NSURL *)
url
ofType:(NSString *)typeName
forSaveOperation:(NSSaveOperationType)saveOperation
Возвращаемое значение
NO
false
.Обсуждение
NSPersistentDocument
не поддерживает асинхронные операции сохранения. Вы не должны переопределять этот метод.
-
configurePersistentStoreCoordinatorForURL:ofType:error: - configurePersistentStoreCoordinatorForURL:ofType:error:
(OS X v10.5)Конфигурирует персистентного координатора хранилища получателя для данного URL и типа документа.
Оператор осуждения
Использовать
configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:
вместо этого.Объявление
Параметры
url
URL, указывающий расположение хранилища документа.
fileType
Тип документа.
error
Если метод не завершается успешно, по возврату содержит
NSError
объект, описывающий проблему.Возвращаемое значение
YES
true
если метод завершается успешно, иначеNO
false
.Обсуждение
Когда существующий документ открыт, этот метод вызывается автоматически. Вы переопределяете этот метод для настройки создания персистентного хранилища для данного документа или типа хранилища. Можно получить персистентного координатора хранилища со следующим кодом:
[[self managedObjectContext] persistentStoreCoordinator];
Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.4 и позже.
Осуждаемый в OS X v10.5.