, но что-то во мне пытается сопротивляться созданию изменяемых объектов, когда результат должен быть постоянным.
инаю использовать наблюдение значения ключа, и изменяемый массив, который я наблюдаю, дает мне NSIndexSets (Упорядоченный изменяемый ко-многим) в словаре изменений. Проблема в том, что табличное представление, насколько я знаю, хочет, чтобы я дал ему NSArrays, полный индексов.
Я думал о реализации собственного метода для преобразования одного в другой, но это кажется медленным, и у меня сложилось впечатление, что должен быть лучший способ обновить это представление таблицы при изменении массива.
Это метод из моего UITableViewDataSource.
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
switch ([[change valueForKey:NSKeyValueChangeKindKey] unsignedIntValue]) {
case NSKeyValueChangeSetting:
NSLog(@"Setting Change");
break;
case NSKeyValueChangeInsertion:
NSLog(@"Insertion Change");
// How do I fit this:
NSIndexSet * indexes = [change objectForKey:NSKeyValueChangeIndexesKey];
// into this:
[self.tableView insertRowsAtIndexPaths:<#(NSArray *)#> withRowAnimation:<#(UITableViewRowAnimation)#>
// Or am I just doing it wrong?
break;
case NSKeyValueChangeRemoval:
NSLog(@"Removal Change");
break;
case NSKeyValueChangeReplacement:
NSLog(@"Replacement Change");
break;
default:
break;
}
}