KVC для записи в NSDictionary

У меня есть NSDictionary сопоставления строк с числами, которые содержат свойства объекта, подлежащего редактированию в пользовательском интерфейсе, например

  • Length: 1
  • Height: 2

Теперь попытка связать текстовые поля в пользовательском интерфейсе с записями в словаре с использованием ключа элементов в словаре в пути ключа с треском проваливается, поэтому пытается просто получить доступ к записям в словаре с помощью valueForKey: лайк

NSLog(@"KVC: %@", [self valueForKey:@"keysAndValues"]);

-> Хорошо, дамп показывает, что Length хранится в словаре.

NSLog(@"KVC: %@", [self valueForKey:@"keysAndValues.Length"]);

[ valueForUndefinedKey:]:
этот класс не совместим со значением ключа для ключа keysAndValues.Length.

Любые предложения о том, как настроить привязки пользовательского интерфейса с довольно общей моделью, хранящей все это в словаре? Я почти уверен, что читал, что KVC/KVO с путями для доступа к отдельным записям в словаре на самом деле работает - но больше не могу найти тему...

1 ответ

Решение

Вы хотите использовать valueForKeyPath:, который принимает список ключей, разделенных точками. Просто используя valueForKey не может включать ряд ключей, как в вашем коде.

Другие вопросы по тегам