取消编辑查看Realm.io数据库

Ona*_*ato 5 cocoa realm

我想为Realm.io数据库中的现有对象模型创建编辑视图.视图控制器有一个保存按钮,它应该保留更改,还有一个取消按钮,该按钮应该丢弃更改.

我无法修改RLMObject写入事务的外部,因此,RLMObject如果需要,暂时修改允许我放弃更改的建议方法是什么?

jps*_*sim 1

您可以将领域对象作为内存中对象传递到编辑视图控制器中以进行编辑。就像这样:

RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[StringObject createInDefaultRealmWithObject:@[@"a"]];
[realm commitWriteTransaction];

StringObject *obj = [[StringObject alloc] initWithObject:[[StringObject allObjects] firstObject]];
XCTAssertEqualObjects(obj.stringCol, @"a");
obj.stringCol = @"b"; // not in a write transaction
XCTAssertEqualObjects(obj.stringCol, @"b");
Run Code Online (Sandbox Code Playgroud)

如果用户按下“保存”,您就可以调用createOrUpdateInDefaultRealmWithObject:并传入内存中的对象,该对象将传入所有值并更新 Realm 中的该对象。请注意,您的对象必须具有主键才能发挥作用。

如果用户按下“取消”,您可以丢弃该内存中的对象,就像什么都没发生一样。

请注意,我们打算在将来添加事务回滚功能,这将简化此模式。