如何从RLMResults中删除对象。我的意思是在NSMutableArray中有一个像
这样的函数 [self.dogs removeAllObjects]
是否有类似RLMResults或RLMArray的功能?
答案 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];