0

我有一门课叫椅子。

我有一个包含椅子类型对象的视图控制器。

在某些时候,我正在尝试将我的 viewcontrollers 实例分配给 Chair 对象的另一个实例,如下所示:

[viewcontroller setChair: thisChair];

我的二传手看起来像这样:

- (void) setChair:(Chair *)thisEntryChair;
{
        myVCChair = thisEntryChair; 
}

我收到此错误:

[setChair:]: unrecognized selector sent to instance 

我是使用 setter 函数还是直接使用 setter 函数:

viewcontroller.myVCChair = thisEntryChair;

这种方法,如果我以与我相信我拥有的其他变量相同的方式完成它,我认为有问题,因为这是一个自定义对象而不是内置对象?

帮助!

4

2 回答 2

2

我认为类名和字段名相同可能是一个问题。尝试重命名您的成员变量aChair或其他东西,看看它是否有效。然后你可以选择一个你更喜欢的名字。

基于问题编辑的更新:

如果您想要自己的设置器,则不应使用 @synthesize。设置器应命名为

 -(void) setmyVCChair: (Chair*) aChair {
     myVCChair = aChair;
 }

然后你可以使用viewcontroller.myVCChair = anotherChair

于 2010-07-29T02:02:09.250 回答
0

所以在你的例子中,代码是:

[viewcontroller setChair:somechair];

或者

viewcontroller.chair = someChair;

内部类 ivar myVCChair 未公开。

于 2010-07-29T02:06:58.420 回答