Зачем менять имя геттеров и сеттеров в Obj-C?
Я только что узнал, что вы можете изменить автоматически сгенерированные имена методов получения и установки для свойств Objective C
// boolean property of "door" object in game
@property (strong, nonatomic, getter=isOpen) BOOL open;
Я понимаю как isOpen
является предпочтительным, чтобы просто open
, но почему бы просто не изменить имя свойства на isOpen
?
Почему бы сеттер также назвали isOpen
не желательно?
1 ответ
Решение
Различие лучше всего оценивается, если мы используем синтаксис []
if ([door isOpen])
doSomething;
else
[door setOpen:YES];
читает больше как обычный английский, чем
if ([door isOpen])
doSomething;
else
[door setIsOpen:YES];
в современном точечном синтаксисе разница немного утрачена
if (door.isOpen)
doSomething;
else
door.open = YES;
против
if (door.isOpen)
doSomething;
else
door.isOpen = YES;