У меня возникли проблемы с преобразованием моих данных из plist в объекты.
Структура plist имеет следующую структуру
Я прочитал файл со следующим кодом
-(void)readAnimationsFromPlist
{
NSDictionary *dict;
NSString *path = [[NSBundle mainBundle] pathForResource:@"Animationen" ofType:@"plist"];
dict = [[NSDictionary alloc] initWithContentsOfFile:path];
CCLOG(@"%@", [dict description]);
for (NSDictionary *items in dict)
{
Animation *animation = [[Animation alloc] init];
animation.name = items.description;
CCLOG(@"%@", items);
animation.delay = [items valueForKey:@"delay"]; //(1)
animation.phases = [items valueForKey:@"phases"];
CCLOG(@"Animation %@ mit %i frames eingelesen", items.description, animation.phases.count);
[animationen setObject:animation forKey:animation.name];
[animation release]; //(2)
}
[dict release];
CCLOG(@"%i animationen eingelesen", [animationen count]);
}
Моя проблема сейчас в том, что никакие данные не читаются в строке, отмеченной (1), всегда выдает следующее исключение.
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSCFString 0x55d3ba0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key delay.'
Я нашел некоторую информацию об этом сообщении, но ничегополезно.
- Это не проблема привязки (не используется IB)
- Когда я использую objectForKey, возникает другая ошибка
Когда я смотрю в инспекторокно при отладке показывает, что элементы имеют тип NSCFString со значением 'Hauptgewinn', но это должен быть словарь.Я попытался привести его явным образом к NSDictionary, но ничего не изменилось.
Что я могу сделать, чтобы решить эту проблему?
В позиции (2) я должен отпустить это или я могу удалитьэта строка?