Sqlite 如何在UIManagedDocument中重写NSPersistentStoreCoordinator
我有一个通过UIManagedObjectDocument使用核心数据的应用程序。我试图通过使用加密的核心数据()向底层SQLite数据库添加加密。根据ECD的描述,我需要创建一种新类型的NSPersistentSroreCoordinator。但是,我似乎无法对UIManagedObjectDocument执行此操作,因为它创建了自己的内部NSPersistenStoreCoordinator(标记为private) 我使用以下行创建数据库:Sqlite 如何在UIManagedDocument中重写NSPersistentStoreCoordinator,sqlite,encryption,uimanageddocument,Sqlite,Encryption,Uimanageddocument,我有一个通过UIManagedObjectDocument使用核心数据的应用程序。我试图通过使用加密的核心数据()向底层SQLite数据库添加加密。根据ECD的描述,我需要创建一种新类型的NSPersistentSroreCoordinator。但是,我似乎无法对UIManagedObjectDocument执行此操作,因为它创建了自己的内部NSPersistenStoreCoordinator(标记为private) 我使用以下行创建数据库: UIManagedDocument* manage
UIManagedDocument* managedDoc = [[UIManagedDocument alloc] initWithFileURL:url];
我尝试将UIManagedDocument子类化,并以这种方式创建它,但没有成功:
UIManagedDocument* managedDoc = [[EncryptedManagedDocument alloc] initWithFileURL:url];
以及我对该类的实现:
@interface EncryptedManagedDocument()
@property (nonatomic,retain,readonly) NSPersistentStoreCoordinator *encryptedStoreCoordinator;
@end
@implementation EncryptedManagedDocument
@synthesize encryptedStoreCoordinator = _encryptedStoreCoordinator;
-(NSPersistentStoreCoordinator*)encryptedStoreCoordinator
{
if (_encryptedStoreCoordinator)
return _encryptedStoreCoordinator;
_encryptedStoreCoordinator = [EncryptedStore makeStore:[self managedObjectModel]:@"SOME_PASSCODE"];
return _encryptedStoreCoordinator;
}
-(NSPersistentStoreCoordinator*)persistentStoreCoordinator
{
return self.encryptedStoreCoordinator;
}
@end
有人知道这样做的正确方法吗
谢谢 我想说这是不可能的。UIManagedDocument很好地完成了工作,对于常见情况来说是一个很好的节省时间的工具,但是为了启用我的场景,我创建了一个EncryptedManagedDocument类,它类似于UIManagedDocument,但允许我控制创建自己的持久存储协调器 谢谢大家