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