Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
smth
177 / 46 / 6
Регистрация: 23.06.2011
Сообщений: 247
#1

@property или ivar - Objective-C

08.05.2015, 12:45. Просмотров 1229. Ответов 1

Добрый день! Занимаюсь Objective C недавно, и, до сегодняшнего времени, не задавался вышеупомянутым вопросом. В учебниках и статьях разброд, многие вообще все свойства выкидывают в .h файл, независимо от того, должны они светиться или нет.

Меня этот вопрос доставал потихоньку, и, наконец, я созрел: ведь, иногда, гораздо удобнее объявить ivar и пользоваться ими (без надоедающего постоянного подчеркивания, @synthesise (если свойств-переменных пара десятков) или постоянного self.propertyname). Естественно, вопрос мой касается лишь переменных, объявляемых в .m файле в секциях @interface или @implementation для внутренних нужд.

Пример 1: мне нужно объявить bool-переменную, в которой будет храниться состояние ячеек таблицы (развернуты / свернуты). Какой смысл делать для нее свойство (тянущее за собой вызов getter-setter), если я могу просто объявить ivar и пользоваться им?
Пример 2: при загрузке ViewController'а мне надо единожды загрузить в NSArray некий набор данных, например, из .plist и пользоваться этим массивом, опять же, для внутренних целей. Опять с ivar'ом проще (по крайней мере, с точки зрения написания и понятности кода).

Прочитал несколько постов на stackoverflow, потом статью на bignerdranch и окончательно запутался.

До этого я писал на шарпе, и там свойствами, в т.ч. анонимными (с которыми я и ассоциирую @property без явно заданных getter и setter) я пользовался тогда, когда к этим значениям нужен был доступ извне класса, а внутри класса - то, что здесь как раз является inctance variable. И все было понятно. В общем, хочу совета, как правильнее делать, и почему.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2015, 12:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос @property или ivar (Objective-C):

Что за знак подчеркивания перед именем ivar-а? - Objective-C
заметил, что в XCODE 5 программа автоматически пытается постаивть знак "_": _lbl.text=tittle; Что он значит? Файл h: #import...

property - Программирование iOS
Добрый день уважаемые форумчане! Возникла проблема со свойствами когда начал использовать NSMutableArray; @interface ViewController...

Property класса - Objective-C
Всем доброго дня! Я только начал изучать Objective C по этому прошу сильно не ругать, а как можно более подробно объяснить ответ на...

@property (readonly) - Objective-C
Добрый вечер, Решил немного поизучать obj-c. Пока не очень привычно Вопрос такой: мутаторы assign, retain, copy влияют только на...

Outlet, @property - Objective-C
Добрый день, встал вопрос: почему при декларации оутлета добавляется только @property: @interface MainViewController :...

@interface и @property - Objective-C
Здравствуйте! Объясните пожалуйста, вот я накатал класс: @interface Good : NSObject { int c; } @property int a; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LeonidPetrosian
0 / 0 / 0
Регистрация: 10.11.2014
Сообщений: 15
08.05.2015, 23:04 #2
Сам задаюсь этим вопросом уже долгое время... Остановился на категориях, которые расширяют наш .m файл. Записываешь туда свой property, и вуаля, он доступен только в .m файле; в .h файле он отсутсвует.
Кажется легче, чем создавать ivar и определять сеттер и геттер.
Ну а в ваших примерах, где геттер и сеттер бесполезны, конечно легче создать ivar
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2015, 23:04
Привет! Вот еще темы с ответами:

Property и synthesize - Objective-C
Доброго времени суток! Недавно начал изучать Objective-C, и столкнулся с проблемой при решении задачи. Вообщем сама проблема....

@property,@synthesize в Objective-C - Objective-C
Может кто нибудь понятно объяснить, что на самом деле делает @property и зачем @synthesize. Читал wiki и другие сайты, но так и не...

Великие и ужасные @property - Objective-C
Всем привет! Уже второй месяц изучаю разработку под iOS, но все откладывал этот вопрос на потом - т.к., мол, "пока и так работает,...

Зачем нужно свойство @property (assign) - Objective-C
Для чего нужно свойство property (assign)? Как мне обратиться к полю класса, если оно под @property? Что будет, если убрать его? Я так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru