Я просматривал скринкасты здесь , чтобы узнать, как написать приложение для iPhone на основе таблицы, и пока все идет довольно гладко. В настоящее время я на полпути к третьему эпизоду, и это начинает поражать.
Чтобы удалить временное жесткое кодирование для верхнего слоя таблицы, учебник создает NSMutableDicitonary
для всех записей и их данных, а затем создает NSArray
, используя инструкцию forKeys
, чтобы получить массив только с заголовками для отображения в ячейках таблицы.
У меня проблема в том, что переменная для массива отказывается синтезировать.
Переменная-нарушитель определена в файле AppDelegate.h
с остальными свойствами следующим образом:
@property (readonly) NSArray *recipes;
Затем он синтезируется и реализуется в файле AppDelegate.m
следующим образом:
@synthesize recipes;
- (NSArray *)recipes {
return [data allKeys];
}
Я спросил у автора скринкаста, и он предложил следующее для AppDelegate.h
:
@class Foo :NSObject {
NSArray *_recipes;
}
@property(nonatomic, retain)NSArray *recipes;
@end
А это для AppDelegate.m
:
@implementation Foo
@synthesize recipes = _recipes;
@end
Я попробовал этот метод, но он создал больше ошибок, чем было раньше. Что отличает это определение переменной от любого другого @property и как я могу заставить его вести себя?