У меня есть объект базовых данных (AGroup), имеющий отношение ко многим к коллекции других объектов базовых данных (элементов, которые являются экземплярами ANItem).Я использую объект AGroup в UITableView (это на iOS), и порядок отображения элементов определяется свойством элементов (sortProperty).Итак, с точки зрения кода (игнорируя, что они являются объектами Core Data, так что это полупсевдокод), это выглядит так:
@interface AGroup : NSManagedObject
{
NSSet *items; // these are instances of ANItem
}
@property (retain) NSSet *items;
@end
@interface ANItem : NSManagedObject
{
NSNumber *sortProperty;
}
@property (retain) NSNumber *sortProperty;
@end
Хорошо, суть в том, что UITableView имеет экземплярОбъект AGroup и отображает список элементов, и порядок, в котором элементы отображаются, определяется свойством sortProperty.
Итак, я хочу знать, когда sortProperty изменяется на экземпляре ANItem, чтобы яможно обновить вид таблицы.Мне интересно, есть ли способ использовать KVO для наблюдения sortProperty из объекта AGroup?Что-то вроде:
[group addObserver:self forKeyPath:@"items.sortProperty" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
или даже:
[group addObserver:self forKeyPath:@"items.@sum.sortProperty" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
будет работать, так как сумма будет меняться при изменении значения.
Я пробовал это, хотя, и я получаю ошибку неверного аргумента.
Кто-нибудь знает, возможно ли это?Если да, то как?
Я понимаю, что мог бы сделать запрос на выборку и отсортировать запрос по sortProperty, но из-за некоторых других ограничений архитектуры приложения это не совсем возможно в этом случае.По сути, это своего рода сводится к представлению, что я просто имею дело с простым старым NSSet в объектных отношениях.Я упоминаю только аспект основных данных в том случае, если это влияет на ответ из-за дополнительных ограничений / etc?