Моя проблема заключается в обновлении NSMutableArray, который содержит различное количество NSDictionary. Каждый NSDictionary имеет 6 ключей, которые извлекаются из базы данных в зависимости от того, какую запись пользователь выбрал в виде таблицы. Массив связан с NSArrayController, который позволяет пользователю выбирать словарь и просматривать содержимое.Обновления, совместимые с KVC для NSMutableArray, содержащие NSDictionary's
Если число [count] словарей изменяется, arrayController обновляет представление; без проблем. Однако количество словарей одинаково между выборами в представлении таблицы, arrayController не обновляет представление, но модель обновляет.
МассивController связан в IB с массивом модели, который обновляется всякий раз, когда выбор изменяется в виде таблицы.
Использование:
[self.selectedJobNotes addObject:[self.jobNotes objectAtIndex:i]];
который не КВЦ требованиям.
Однако использование (который я считаю KVC податливого):
[[self.selectedJobNotes objectAtIndex:noteCount] setValue:[[self.jobNotes objectAtIndex:i]valueForKey:@“Content"] forKeyPath:@"Content"];
не работает.
Есть ли способ сообщить ArrayController, что это новый массив/имеет свежий контент, поэтому перезагрузите.
[self.jobNotesArrayController fetch:self.a2gDataObject.selectedJobNotes];
Кажется, что не работает? ??
Спасибо за ответ. Я отдам его. В то же время, просто отменил реферирование массива, а затем создал новый. selectedJobNotes = nil; Неуклюжий и, вероятно, неправильный способ сделать это, но он работал на короткий срок. Я попытаюсь реализовать эти методы. Я думаю, что попробовал willChange/didChange, но они не сработали. Возможно, неправильно реализовано. – Steve
Реализованы эти методы, но мне еще нужно уничтожить и воссоздать массив, чтобы получить желаемый результат. Вероятно, все еще делаю это лучше, чем раньше. – Steve