После определения свойства в интерфейсе класса я создаю метод setter с использованием автоматически созданного метода _property
. Все идет отлично. Затем я создаю метод getter для того же свойства. Как только я это сделаю, компилятор выдает ошибку, которая _property
не определена везде, где я ее использовал.Ошибка компилятора при создании методов getter для автоматических синтезированных свойств
Если у меня есть только определитель или сеттер, все работает нормально, но как только я определяю оба, _property
перестает существовать.
Если я добавлю @synthesize property = _property;
в начало моей реализации, проблема решена, но мне грустно.
Абсолютно верно, я не уверен, почему я только сейчас столкнулся с этим фактом. Из любопытства '@synthesize property = _property' эффективно то же самое, что и определение ivar в заголовке? –
По существу. Но вы не должны помещать ivar в заголовок. Он должен заходить в файл .m, поскольку он является приватным. Лично, поскольку вы не синтезируете геттер и сеттер, нет причин для синтеза ivar. Просто объявите свой собственный ivar. Тогда это непротиворечиво. – rmaddy
Справа. Делает совершенный смысл. Благодаря! –