2012-06-12 3 views
2

Я пытаюсь использовать KVC для извлечения значения свойства пользовательского объекта NSManagedObject, построенного с использованием данных Core. Я получаю исключение UnknownKeyException при попытке доступа к собственности на несколько уровней в глубину, и для жизни меня не могу понять, почему ...Почему мой NSManagedObject не соответствует требованиям KVC?

Корневой объект называется «Поймать». он имеет ряд свойств: вес, длину и т. д. Он также имеет отношение к одному объекту под названием «Виды». У видов есть свойство name, определенное как NSString.

Итак:

//this will output the species name (i.e. "Brook Trout") 
NSLog(@"Catch.species.name = %@", catch.species.name); 

//this will throw a NSUnknownKeyException 
NSLog(@"Catch.species.name = %@", [catch valueForKey:@"species.name"]); 

//but this works...!? 
Species *species = (Species*)[catch valueForKey:@"species"]; 
NSLog(@"Species.name = %@", species.name); 

Конкретные детали исключения являются:

* Нагрузочного приложение из-за неперехваченное исключение 'NSUnknownKeyException', причина: «[valueForUndefinedKey]: сущность Поймайте не ключ значение кодирования для ключа «species.name».

Кто-нибудь, кто понимает этот материал лучше меня, знает, что происходит?

Заранее благодарен!

ответ

8

Попробуйте использовать -valueForKeyPath: вместо -valueForKey: для цепочки ключей, т. Е. «Species.name» в этом случае.

+0

Это было. Благодаря! – pdriegen

Смежные вопросы