Зачем менять имя геттеров и сеттеров в 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;
Другие вопросы по тегам