setEditable и isEditable - PullRequest
       28

setEditable и isEditable

0 голосов
/ 15 октября 2011

Привет, я новичок в цели c и вижу это довольно часто, когда читаю документацию для разработчиков.

Существуют методы с именами setEditable или setWhwhatName и isEditable или isWhwhatName

В чем разница между набором "blabla" и "blabla"

, и пример будет дляКласс NSButton

-setAlternateTitle

и -alternateTitle

или

Класс NSImageView

-isEditable

и -setEditable:

Iдумаю, что последний в обоих примерах принимает параматер, а первый - нет.Это правильно?

Ответы [ 3 ]

3 голосов
/ 15 октября 2011

Это так называемые методы мутатора .Это методы, которые вы используете для доступа к различным Objective-C свойствам , которые в основном являются переменными-членами класса (так называемые ivars или переменные экземпляра ), за исключением того, что вы не можете получить к ним доступ напрямую.Вы можете получить доступ к ivars только через методы setter и getter .

Метод getter получает текущее значение свойства.Обычно ему присваивается имя, идентичное рассматриваемому свойству (например, -alternateTitle) для небулевых свойств, или имя с префиксом is (например, -isEditable) для логических свойств.

Метод setter устанавливает новое значение для свойства.Обычно ему присваивается имя свойства с префиксом set, например -setEditable:.

Например:

if ([myObject isEditable])  // Is the object editable?
    /* do stuff */ ;
...
[myObject setEditable:YES];  // Make it editable
1 голос
/ 15 октября 2011

Существует шаблон для поселенцев и получателей.

Для не-BOOL иваров

  • сеттер имеет префикс "set": "setMyIvar" - обратите внимание на верхний регистр "М».
  • Получатель - это просто имя ивара: «myIvar» - обратите внимание, что префикса «get» нет.*

Это значения по умолчанию, созданные свойством, например:

@property (nonatomic, retain) (NSString *)myString;

Для BOOL-иваров существует два шаблона:

  • , которые имеет установщикпрефикс "set": "setMyBoolIvar" - обратите внимание на верхний регистр "M".
  • получатель - это просто имя ивара: «myBoolIvar» - обратите внимание, что префикса «get» нет.*

    или

  • у установщика есть префикс «is»: «isMyBoolIvar» - обратите внимание, что префикса «get» нет, а заглавная буква «M».

Это значения по умолчанию, созданные свойством, например:

@property (nonatomic, assign) (BOOL *)myBoolIvar;

или соответственно

@property (nonatomic, assign, getter=isMyBoolIvar) (BOOL *)myBoolIvar;
1 голос
/ 15 октября 2011

-setAlternateTitle и -alternateTitle являются установщиками и получателями по умолчанию (например, NSObject или int) в соответствии со стандартными соглашениями об именах.

setEditable и isEditable - обычные установщикии получатель для логических (BOOL) свойств.В логическом случае это улучшает читаемость.Обратите внимание, что изменение здесь только в геттере.

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