我正在尝试使用
在我的iPhone应用程序中合成变量@synthesize samples=_samples;
将samples
声明为
@property (strong, nonatomic) NSMutableArray *samples;
但是,我收到一个构建错误,声称_samples不存在。为什么呢?
答案 0 :(得分:2)
您是否尝试从实施文件外部访问_samples
?通过@synthesize
生成的ivars无法被调用@synthesize
的实现之外的任何内容查看。所以如果你这样做......
MyView *myView = [[MyView alloc] init];
myView._sample;
......你会看到一个错误。有关详细信息,请参见此处:https://stackoverflow.com/a/8511046/251012
编辑:以下所有内容都是错误的。左,以便评论有意义
你是否宣布你的ivar并且名字拼写正确吗?
当你说类似......
时@synthesize foo = _foobar;
...您需要确保在界面中设置实例变量,如此...
@interface MyObject : NSObject
{
NSString *_foobar;
}
@property(nonatomic,strong) NSString *foo;
@end
要明确的是,当您说foo=_foobar
时,foo
是自动生成getter / setter的基本名称,而_foobar
是ivar的名称。如果没有声明ivar,@property
将自动生成一个相同的名称。
答案 1 :(得分:1)
同样的代码正在我这边工作。尝试重新启动xcode并重建项目。