Шаблоны Xcode4 теперь используют подчеркивание на iVars? - PullRequest
3 голосов
/ 26 мая 2011

Я заметил, что с Xcode4 Apple обновила шаблоны приложений, добавив подчеркивания перед переменными экземпляра.

// Xcode4
@property (nonatomic, retain) IBOutlet UIWindow *window;
@synthesize window = _window;

.

// Xcode3
@property (nonatomic, retain) IBOutlet UIWindow *window;
@synthesize window;

Я знаю, что существуют разные мнения относительно полезности этого, но мне было просто интересно, если обновленные шаблоны где:

  • (1) Выделение новой лучшей практики.
  • (2) Показывает, как Apple делает что-то, но для вас значит делать это по-старому.
  • (3) Это просто личный вкус, это не имеет значения.

1 Ответ

6 голосов
/ 26 мая 2011

Это интересно, потому что в прошлом (до iOS) Apple раньше не поощряла использование префиксов подчеркивания для ivars :

Избегайте использования символа подчеркивания какпрефикс, означающий приватность, особенно в методах.Apple оставляет за собой право использовать это соглашение.Использование третьими лицами может привести к столкновениям пространства имен;они могут невольно переопределить существующий частный метод своим собственным, что приведет к катастрофическим последствиям.См. «Частные методы» для предложений относительно соглашений, которым нужно следовать для частного API.

Но с современной средой выполнения Objective C я считаю, что конфликты именования ивара в подклассах устранены, так что это не проблемабольше.Поэтому я думаю, именно поэтому они заставляют шаблоны использовать префикс подчеркивания по умолчанию, чтобы соответствовать внешнему виду внутреннего кода Apple.

...