我一直在进行屏幕录像here,以学习如何编写基于表的iPhone应用程序,到目前为止,它一直进行得很顺利。目前我正在第三集的中途,并且开始遇到障碍。
为了删除表顶层的临时硬编码,本教程为所有条目及其数据创建一个NSMutableDicitonary
,然后使用NSArray
语句创建一个forKeys
来获得一个数组,该数组只包含显示在表格单元格中的headwords。
我遇到的问题是数组的变量拒绝合成。
在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不同,如何使它起作用?
最佳答案
@synthesize
生成访问属性的简单方法。由于访问器方法更复杂,因此无法使用@synthesize
生成。
- (NSArray *)recipes {
return [data allKeys];
}
关于objective-c - 属性拒绝合成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1829492/