我有一个名为Chair的课程。
我有一个包含Chair类型对象的视图控制器。
在某些时候,我正在尝试将我的viewcontrollers实例分配给另一个Chair对象的实例:
[viewcontroller setChair: thisChair];
我的二传手看起来像这样:
- (void) setChair:(Chair *)thisEntryChair;
{
myVCChair = thisEntryChair;
}
我收到此错误:
[setChair:]: unrecognized selector sent to instance
我是使用setter函数还是使用setter函数或使用setter:
viewcontroller.myVCChair = thisEntryChair;
这种方法,如果我以与我认为的其他变量相同的方式完成它,我认为是有问题,因为这是一个自定义对象而不是内置对象?
帮助!
答案 0 :(得分:2)
我认为类名和字段名相同可能是个问题。尝试重命名您的成员变量 aChair
或其他东西,看它是否有效。然后你可以选择一个你更喜欢的名字。
基于问题编辑的更新:
如果你想要自己的setter,不应该使用@synthesize。应将setter命名为 -(void) setmyVCChair: (Chair*) aChair {
myVCChair = aChair;
}
然后您可以使用viewcontroller.myVCChair = anotherChair
答案 1 :(得分:0)
所以在你的例子中代码是:
[viewcontroller setChair:somechair];
或
viewcontroller.chair = someChair;
内部类ivar myVCChair未公开。