Получатели / Установщики / Назначение одного объекта другому - PullRequest
0 голосов
/ 29 июля 2010

У меня есть класс, который называется Стул.

У меня есть контроллер представления, который содержит объект типа Chair.

В какой-то момент я пытаюсь назначить свой экземпляр viewcontrollers другому экземпляру объекта Chair как таковому:

[viewcontroller setChair: thisChair];

Мой сеттер выглядит так:

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

Я получаю эту ошибку:

[setChair:]: unrecognized selector sent to instance 

использую ли я функцию сеттера или просто так или использую сеттер:

viewcontroller.myVCChair = thisEntryChair;

При таком подходе, если я сделал это таким же образом, как и у других переменных, которые, как мне кажется, у меня есть, я предполагаю, что возникают проблемы, поскольку это пользовательский объект, а не встроенный?

Помощь!

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Я думаю, что имя класса и имя поля могут совпадать. Попробуйте переименовать вашу переменную-член aChair или что-то еще, чтобы увидеть, работает ли она. Тогда вы можете выбрать имя, которое вам больше нравится.

ОБНОВЛЕНИЕ НА ОСНОВЕ РЕДАКТИРОВКИ ВОПРОСА:

@ synthesize не следует использовать, если вам нужен собственный установщик. Сеттер должен иметь имя

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

Тогда вы можете использовать viewcontroller.myVCChair = anotherChair

0 голосов
/ 29 июля 2010

поэтому в вашем примере код будет:

[viewcontroller setChair:somechair];

или

viewcontroller.chair = someChair;

Внутренний класс ivar myVCChair не выставлен.

...