从RLMResults中删除对象

时间:2016-06-27 09:42:59

标签: ios objective-c realm realm-cocoa

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

这样的函数

[self.dogs removeAllObjects]

是否有类似RLMResults或RLMArray的功能?

3 个答案:

答案 0 :(得分:1)

这种方法适用于RLMArray removeAllObjects。这意味着您将对象与阵列中的所有其他链接对象取消关联。

RLMResults没有这样的方法,因为此类的实例始终表示查询的最新状态,只有在修改基础数据时才能改变。因此,如果您在列表上进行查询,则可以通过从列表中删除对象来隐式实现。如果您查询所有对象(/表),则需要从Realm中删除对象,或者以不再与查询匹配的方式对其进行修改。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您可以删除

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