我一直在通过屏幕录像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