【发布时间】:2014-07-04 02:56:09
【问题描述】:
我有一个通过 UIManagedObjectDocument 使用 Core Data 的应用程序。我正在尝试使用加密核心数据 (https://github.com/project-imas/encrypted-core-data) 为基础 SQLite 数据库添加加密。从 ECD 的描述中,我需要创建一种新类型的 NSPersistentSroreCoordinator。但是,我似乎无法使用 UIManagedObjectDocument 执行此操作,因为它会创建自己的内部 NSPersistenStoreCoordinator(标记为私有)。
我用这一行创建数据库:
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
有人知道正确的方法吗?
谢谢!
【问题讨论】:
标签: sqlite encryption uimanageddocument