Ios 父子领域
我正在从CoreData迁移到Realm。。。基本上,我需要有两个独立的数据库,比如说一个只有内存,另一个有磁盘持久性 现在,在解析过程中,我需要创建一个领域,该领域可以在给定线程中工作,但可以链接到我选择的顶级领域,而不仅仅是默认领域(如线程的CoreData子上下文) 目前我是这样做的Ios 父子领域,ios,objective-c,realm,Ios,Objective C,Realm,我正在从CoreData迁移到Realm。。。基本上,我需要有两个独立的数据库,比如说一个只有内存,另一个有磁盘持久性 现在,在解析过程中,我需要创建一个领域,该领域可以在给定线程中工作,但可以链接到我选择的顶级领域,而不仅仅是默认领域(如线程的CoreData子上下文) 目前我是这样做的 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ RLMRealm * realm =
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
RLMRealm * realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
// ...
[realm commitWriteTransaction];
dispatch_async(dispatch_get_main_queue(), ^{
// the objects from above are now saved in the default real
});
});
但我需要有两个主要领域(一个在内存中,一个存储光盘),而不是像smth一样
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
RLMRealm * realm = [RLMRealm childRealmWithParentRealm:myRealm1];
[realm beginWriteTransaction];
// ...
[realm commitWriteTransaction];
dispatch_async(dispatch_get_main_queue(), ^{
// the objects from above are now saved in the myRealm1
});
});
这听起来像是你在试图过度设计一个解决方案,而实际上你并不需要它 Realm并不订阅与核心数据相同的模型,在核心数据中,您需要一个上下文链来确保所有内容都跨线程更新。一旦提交了写事务,对该领域的更改将在运行循环的下一次迭代中的所有线程上可用 我的建议是删除内存中的领域(即使只是暂时的),对磁盘上的领域做任何事情,看看这是否足以满足您的需要。领域是邪恶的快,所以你不应该真的需要一个内存缓冲区版本这样
如果您确实需要内存中的领域,请记住它们将是两个离散的领域实体;您不能链接它们,也不能在它们之间共享对象(您需要为每个领域手动创建它们),因此您应该评估是否确实需要它们。祝你好运 领域没有“次现实”的概念。那到底是什么意思?领域是一组对象。您认为您的子领域是什么?根据领域的设计,子领域可以是对象的子集。但这不是你所描述的…我需要有两个领域,一个用于内存(Realm1),一个用于持久性(Realm2),在线程中,我需要解析到Realm1或Realm2。。。在CD中,这可以通过创建一个子上下文来实现,该子上下文从上下文中继承所有对象,然后保存回该上下文。如果只是为了性能,内存中域中的所有对象都必须在持久域中结束,那么为什么不直接将它们添加到后台线程中的持久域中呢?