Свойства iPhone Obj-C - PullRequest
       15

Свойства iPhone Obj-C

1 голос
/ 22 декабря 2009

Я начинающий читатель книги по созданию приложений для iPhone.

Одним из шагов было написание «UISwitch * whichSwitch = whichSwitch.isOn;» и мне было просто любопытно, откуда пришло «isOn»?

В документации:

on
A Boolean value that determines the off/on state of the switch.

@property(nonatomic, getter=isOn) BOOL on

Что означает эта часть "getter = isOn"? Моя конечная причина задать этот вопрос заключается в том, что я хочу знать, что мне следует делать, когда я сталкиваюсь с похожей ситуацией для различных элементов пользовательского интерфейса.

О да, это похоже на то, что свойства создают мутатор "setSomething" и аксессор "что-то"? За исключением того, что для логических значений это "isOn" и "on"?

Спасибо.

1 Ответ

6 голосов
/ 22 декабря 2009

Свойства в основном являются сокращением для генерации методов позже (фактическое создание выполняется директивами @synthesize в файле реализации). getter=isOn внутри @property действительно означает, что метод получения имеет имя isOn.

Свойства по умолчанию создадут метод получения с таким же именем, как у ивара , и метод установки с добавлением set. Изменение имени получателя (или его установщика с синтаксисом setter=) - это все, что делает эта директива свойства. Это следует делать только для логических или аналогичных переменных - другие переменные должны иметь метод получения с тем же именем, что и переменная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...