Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
andrei0077
6 / 6 / 0
Регистрация: 23.06.2011
Сообщений: 92
1

Свойства

12.09.2012, 18:53. Просмотров 1020. Ответов 4
Метки нет (Все метки)

Добрый день! У меня проект с ARC. Я задал свойство
Objective-C
1
@property (nonatomic,strong) UITableView *theTableView;
. Синтезирировал его так
Objective-C
1
@synthesize theTableView = theTableView_
Такой вопрос: как к нему обращаться из класса, в каких случаях нужно обращаться к self.theTableView , а в каких к theTableView_ ? Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2012, 18:53
Ответы с готовыми решениями:

Свойства класса
Здравствуйте! Пытаюсь разобраться со старым и новым способами записи свойств...

Видимость свойства
Всем привет! в Классе LoadingData.h @property (nonatomic, retain)...

ARC и свойства
Добрый день! Такой вопрос. В режиме ARC , в каких случаях нужно писать у...

Свойства и переменные
добрый день! продолжаю учить obj c. Не понял один момент со свойствами. ...

Size Classes и свойства frame/bounds у UIView
Всем привет! Решил в своем pet-проекте заюзать по-полной size classes, и...

4
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
12.09.2012, 19:18 2
Если уж синтезируйте, синтезируйте правильно:
Objective-C
1
@synthesize tableView = _tableView;
Артикль the можно опустить, он тут совершенно не нужен.
Подчеркивание, если по хорошему , необходимо писать именно вначале изза особенностей работы KVC. Ну еще так советуют в доке Apple, объясняя почему. Будет интерес - разберетесь.

_tableView - это "instance variable". Все это для ограничения области видимости.
Тогда как, если вы определите свойство(@property) в интерфейсе(.h), любой класс может обратиться к этой переменной через someClass.tableView;
По сути - это ограничение доступа к ivar только через методы доступа(setter, getter).
1
andrei0077
6 / 6 / 0
Регистрация: 23.06.2011
Сообщений: 92
12.09.2012, 19:29  [ТС] 3
Спасибо. Осталось 2 вопроса. 1) Когда я обращаюсь из самого класса , лучше писать _tableView или self.tableView ? 2) Я скачал 2 исходника с сайта apple и там для всех свойств подчеркивание пишут именно в конце слова, почему?
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
12.09.2012, 19:59 4
Цитата Сообщение от andrei0077 Посмотреть сообщение
Когда я обращаюсь из самого класса , лучше писать _tableView или self.tableView ?
думаю, все же лучше второй вариант, так как может понадобиться переопределить методы tableView и setTableView, и реализовать в них некоторую логику, отличную от стандартной,
к примеру у вас есть проперти age и вам понадобилось запретить ввод чисел меньше 0 и больше 100, тогда нужно будет внести изменения только в одном месте - в самом аксессоре или мутаторе
Цитата Сообщение от andrei0077 Посмотреть сообщение
Я скачал 2 исходника с сайта apple и там для всех свойств подчеркивание пишут именно в конце слова, почему?
про подчеркивание zulkis уже сказал, от себя добавлю, что есть некоторые зарезервированные слова, которые начинаются с подчеркивания, может быть из-за этого, так же чтобы наверняка имя вашей переменной с ними не путалось, советуют ставить два подчеркивания вместо одного (наблюдал такое в автоматически сгенерированных свойствах с помощью Core Data и в лекциях стенфордского университета, где это упоминается)
1
andrei0077
6 / 6 / 0
Регистрация: 23.06.2011
Сообщений: 92
13.09.2012, 10:38  [ТС] 5
Спасибо, всё разъяснили.
0
13.09.2012, 10:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2012, 10:38

Как из одного ViewController изменить свойства другого?
Здравствуйте! У меня приложение на UITabBarController, я хочу чтобы если...

Выполнить команду в set свойства для свойства SelectedItem (ComboBox ) MVVM
Хай Коротко: при каждом выборе элемента из ComboBox нужно выполнять команду,...

PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства?
Работаю с propertyGrid. Одно поле высвечивается, когда в другом появляется...


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

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

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