从 RLMResults 中移除对象

removeObjects from RLMResults

如何从 RLMResults 中删除对象。我的意思是在 NSMutableArray 中有一个像

这样的函数

[self.dogs removeAllObjects]

RLMResults 或 RLMArray 有类似的功能吗?

可以删除

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];

RLMArrayremoveAllObjects 存在这种方法。这意味着您取消该对象与数组中所有其他链接对象的关联。

RLMResults 没有这样的方法,因为此 class 的实例始终代表查询的最新状态,只有在修改基础数据时才能改变它。因此,如果您查询列表,则可以通过从列表中删除对象来隐含地实现这一点。如果您查询所有对象 (/ a table),那么您需要从 Realm 中删除这些对象,或者以不再匹配您的查询的方式修改它们。

将 RLMResults 中的所有对象复制到 NSMutableArray,然后对其进行操作。