Простой ответ заключается в том, что здесь нет никакого кода, который вызывает методы для установки массивов или словаря.
Но настоящая основная проблема заключается в том, что здесь происходит несколько плохих «шаблонов», которые вы должны исправить:
В ваших методах установки (setCatList :, setDogList :, setStandardDictionary :) вы не устанавливаете свойства, о которых идет речь, в значения, которые передаются. Например, вы должны устанавливать catList для переданной в переменную "catList" .
- (void)setCatList:(NSMutableArray *)catList
{
if (_catList != catList) {
[_catList release];
_catList = [catList retain];
}
}
Тогда у вас должна произойти какая-то «настройка», обычно в методе в контроллере вида, таком как viewDidLoad:
[wordDictionary setCatList:[NSMutableArray arrayWithObjects:@"lion", @"puma", @"snow leopard", nil]];
// and more for the other two setters
Кроме того, вы можете установить эти значения по умолчанию в init для класса wordDictionary:
- (id)init {
self = [super init];
if (self) {
[self setCatList:[NSMutableArray arrayWithObjects:@"lion", @"puma", @"snow leopard", nil]];
}
return self;
}
Первое лучше в большинстве случаев, но у вас может быть веская причина для предварительного заполнения вашей модели для всех экземпляров класса.