1

我正在尝试在我的 iPhone 应用程序中合成变量

@synthesize samples=_samples;

samples声明为

@property (strong, nonatomic) NSMutableArray *samples;

但是,我收到一个构建错误,声称 _samples 不存在。为什么?

4

2 回答 2

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=_foobarfoo是自动生成 getter/setter 的基本名称,并且_foobar是 ivar 的名称。如果没有声明 ivar,@property将自动生成一个同名。

于 2012-05-01T00:24:38.507 回答
1

同样的代码在我这边工作。尝试重新启动 xcode 并重建项目。

于 2012-04-30T23:58:57.773 回答