我有一个通过UIManagedObjectDocument使用Core Data的应用程序。我试图通过使用加密核心数据(https://github.com/project-imas/encrypted-core-data)将加密添加到基础SQLite数据库。从ECD描述中,我需要创建一个新的NSPersistentSroreCoordinator类型。但是,我似乎无法使用UIManagedObjectDocument来做到这一点,因为它创建了自己的内部NSPersistenStoreCoordinator(标记为private)。如何覆盖UIManagedDocument中的NSPersistentStoreCoordinator
我创建数据库这一行:
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
有谁知道正确的方法来做到这一点?
谢谢!