【发布时间】:2016-06-27 09:42:59
【问题描述】:
如何从 RLMResults 中删除对象。我的意思是在 NSMutableArray 中有一个类似
的函数[self.dogs removeAllObjects]
RLMResults 或 RLMArray 有类似的功能吗?
【问题讨论】:
标签: ios objective-c realm realm-cocoa
如何从 RLMResults 中删除对象。我的意思是在 NSMutableArray 中有一个类似
的函数[self.dogs removeAllObjects]
RLMResults 或 RLMArray 有类似的功能吗?
【问题讨论】:
标签: ios objective-c realm realm-cocoa
RLMArray 和removeAllObjects 存在这种方法。这意味着您取消了该对象与数组中所有其他链接对象的关联。
RLMResults 没有这样的方法,因为此类的实例始终代表您查询的最新状态,只有在您修改基础数据时才能改变它。因此,如果您在列表上进行查询,则可以通过从列表中删除对象来隐含地实现这一点。如果您查询所有对象(/一个表),那么您需要从领域中删除对象或修改它们以使它们不再与您的查询匹配。
【讨论】:
将所有对象从您的 RLMResults 复制到 NSMutableArray 并对其进行操作。
【讨论】:
你可以删除
RLMResults *tableDataArray;
tableDataArray=[Dog allObjects];
[[RLMRealm defaultRealm] beginWriteTransaction];
//Deleting All Objects
[[RLMRealm defaultRealm]deleteAllObjects];
//Remove particular object
[[RLMRealm defaultRealm]deleteObject:[tableDataArray objectAtIndex:indexPath.row]]; // I use this in didSelectRowAtIndexPath
[[RLMRealm defaultRealm] commitWriteTransaction];
添加
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
Dog *dog = [[Dog alloc] init];
dog.name=@"Puppy";
dog.city=@"New York";
[realm addObject:dog];
[realm commitWriteTransaction];
用于更新
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
dog.name=@"Rosie";
dog.city=@"Washington";
[realm commitWriteTransaction];
【讨论】: