2012-04-16 2 views
0

Почему бы следующее:«Нет видимых @inteface ... заявляет ...» ошибка для свойств

[object propertyName:propertyValue] причину выше исключения в Xcode 4.3 и лев, но object.propertyName=propertyValue будет работать нормально? @property в вопросе простой float и я также использовал @synthesize.

Я относительно новичок в Objective C, но имею довольно много опыта работы на C# и читал книгу Аарона Хиллегасса по теме, где оба подхода перечислены как синонимы, с [...] являющийся предпочтительным.

ответ

3

Метод сеттера не называется таким же, как свойство. Вы хотите, чтобы setPropertyName вместо propertyName при вызове его как метода. Геттер по-прежнему остается только именем свойства.

См. How to write my own setter for an ivar для примера.

0

Когда вы используете @property и @syntesize, чтобы объявить переменную, системные методы получения и установки для вас. И на этом вам нужно использовать [object setPropertyName:propertyValue]. Также вы можете использовать object.propertyName=propertyValue, но это стиль программирования C.

+0

Большое спасибо! Использование свойства без префикса «set» действительно вызывало проблему. – AssenB

Смежные вопросы