ここでは、テーブルベースのiPhoneアプリケーションの作成方法を学ぶためにスクリーンキャストを見てきましたが、これまでのところ順調に進んでいます。現在、私は第3話の途中で、問題が発生し始めています。
テーブルの最上位レイヤーの一時的なハードコーディングを削除するために、チュートリアルでは、NSMutableDicitonary
すべてのエントリとそのデータのを作成し、次に、NSArray
usingforKeys
ステートメントを作成して、テーブルのセルに表示するヘッドワードのみを含む配列を取得します。
私が抱えている問題は、配列の変数が合成を拒否することです。
問題のある変数は、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と異なる点は何ですか?また、どのように動作させることができますか?