Зачем менять имена геттеров и сеттеров в Obj-C?

Я только что узнал, что вы можете изменить автоматически сгенерированные имена геттера и сеттера для свойств Objective-C.

// boolean property of "door" object in game
@property (strong, nonatomic, getter=isOpen) BOOL open;

Я понимаю, что isOpen предпочтительнее получить только open, но почему бы просто не изменить имя свойства на isOpen?

Почему нежелательно иметь сеттер с именем isOpen?


person Dana    schedule 27.01.2013    source источник


Ответы (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;

vs

    if (door.isOpen)
       doSomething;
    else
       door.isOpen = YES;
person foundry    schedule 27.01.2013