removeObjects из RLMResults

Как я могу удалить объекты из RLMResults. Я имею в виду, что в NSMutableArray есть такая функция

[self.dogs removeAllObjects]

Есть ли такая функция для RLMResults или RLMArray?

3 ответа

Решение

Такой метод существует для 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];
Другие вопросы по тегам