首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UIManagedDocument中重写NSPersistentStoreCoordinator

如何在UIManagedDocument中重写NSPersistentStoreCoordinator
EN

Stack Overflow用户
提问于 2014-07-04 10:56:10
回答 1查看 141关注 0票数 3

我有一个通过UIManagedObjectDocument使用核心数据的应用程序。我正在尝试使用加密的核心数据(https://github.com/project-imas/encrypted-core-data)将加密添加到底层SQLite数据库中。根据对ECD的描述,我需要创建一种新类型的NSPersistentSroreCoordinator。但是,我似乎不能使用UIManagedObjectDocument做到这一点,因为它创建了自己的内部NSPersistenStoreCoordinator (标记为私有)。

我用下面这行代码创建数据库:

代码语言:javascript
复制
UIManagedDocument* managedDoc = [[UIManagedDocument alloc] initWithFileURL:url];

我尝试了UIManagedDocument的子类化,并以这种方式创建它,但没有成功:

代码语言:javascript
复制
UIManagedDocument* managedDoc = [[EncryptedManagedDocument alloc] initWithFileURL:url];

以及我的类的实现:

代码语言:javascript
复制
@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

有人知道做这件事的正确方法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 13:49:53

我要说这是不可能的。UIManagedDocument很好地完成了所有的工作,并且对于常见的情况非常节省时间,但是为了支持我的场景,我创建了一个类似于UIManagedDocument的EncryptedManagedDocument类,但是让我可以控制创建自己的持久存储协调器。

谢谢大家。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24566060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档