Согласно названию действительно.У меня есть объект, который имеет свойство "idNumber".Так же, как я могу привязать текстовое поле к расположенным объектам контроллера массива с помощью ключевого пути модели "@count", чтобы обеспечить подсчет всех объектов в массиве, я хотел бы иметь возможность привязать текстовое поле к расположенным объектам контроллера массива с помощьюпреобразователь значения, чтобы возвратить счетчик отфильтрованного подмножества массива (те объекты с idNumber> 5).
Я предполагаю, что это возможно ??
Моя попытка:
Я привязал текстовое поле к контроллеру массива, Ключ контроллера Путь к ключу модели "managedObjects" Model"Трансформатор стоимости" AllToSomeTransformer ".
Код для AllToSomeTransformer:
-(id)transformedValue:(id)value {
NSArray *arrayOfAllCars;
if (value == nil) return nil;
if ([value respondsToSelector: @selector(count)]) {
arrayOfAllCars = [NSArray arrayWithArray:value];
} else {
[NSException raise: NSInternalInconsistencyException
format: @"Value (%@) does not respond to -count.",
[value class]];
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idNumber > %@", [NSNumber numberWithInt:5]];
NSArray *arrayOfBlueCars = [arrayOfAllCars filteredArrayUsingPredicate:predicate];
return [NSNumber numberWithInt:[arrayOfBlueCars count]];
}
Я считаю, что мой преобразователь значений правильно зарегистрирован и т. Д. Чтобы попытаться выяснить, что происходит, я добавил несколько выходов NSLog вышекод.Похоже, что вышеупомянутый метод вызывается только один раз, при запуске приложения, а не снова, когда новые объекты добавляются в массив.Может быть, поэтому текстовое поле не обновляется со значениями ??
Спасибо, Оли