我一直在通過屏幕錄像here來學習如何編寫基於表格的iPhone應用程序,到目前爲止它一直非常順利。目前我正處於第三集的一半,它開始遇到困難。屬性拒絕合成
爲了移除表格頂層的臨時硬編碼,本教程將爲所有條目及其數據創建NSMutableDicitonary
,然後使用forKeys
語句創建NSArray
以獲取僅包含詞條的數組在表格單元格中顯示。
我遇到的問題是數組的變量拒絕合成。
冒犯性的變量是在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不同,我怎樣才能使它行爲?
'@ class'正向聲明一個類名。你在那裏顯示的AppDelegate.h應該使用'@interface'。 – 2009-12-02 00:37:28