我们有这个例子:
我们与一组动物一起工作.让我们假设我们不需要在数据库中持久存在所有动物,并且存在控制从数据库添加和移除动物的逻辑.
例如,我有一个对象,一个马,带有name"Suey"的字符串属性,我将她添加到Realm中addObject:.所以现在我们将这个对象保存到Realm.这个对象是有效的,我们可以这样做horse.name,它将返回"Suey".
接下来会发生什么,我需要从DB中删除Suey.我知道deleteObject:.但遗憾的是,它不仅删除了关于马的持久信息,而且还使我的对象无效.Suey基本上死了,所以如果我想要她回到DB中我需要从头开始创建另一匹马,并且只有在那之后我才能在DB中拥有另一个Suey.
还有另一种方法让Suey活着,所以我在管理她的状态方面有更大的灵活性吗?
我希望我明确指出,如果您有任何问题,请告诉我.
提前致谢!
UPDATE
Horse IS参与一对多的关系,因此它的寿命也会影响相关模型中的属性.
Realm 中的对象是数据库中等效对象的访问器。如果出于某种原因,您需要将对象变量与其在磁盘上的表示形式“分离”,则可以将其复制到内存中。一种简单的方法是使用持久对象的内容创建一个新的非持久对象:
// Assuming `Horse` inherits from `RLMObject` and `persistedHorse` is attached to an `RLMRealm`.
Horse *persistedHorse = ...;
Horse *inMemoryHorseCopy = [[Horse alloc] initWithObject:persistedHorse];
// This will create a new `Horse` object, not tied to an RLMRealm,
// by copying the contents of `persistedHorse`.
Run Code Online (Sandbox Code Playgroud)
RLMObject每当您需要将现有对象复制到独立对象(如上所述)或另一个领域时,您都可以使用相同的方法。
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |