В Objective-C, что означает код после @synthesize? - PullRequest
1 голос
/ 28 января 2012

Извините за плохой заголовок, я не был уверен, как еще назвать этот вопрос.В любом случае, предположим, что у меня есть следующее:

@synthesize display = _display

Мой вопрос: в чем разница между дисплеем и _display?К чему относится каждый из них?

Чтобы прояснить, я знаю, что делает @synthesize (он создает методы получения и установки), но я не совсем точно знаю, на какую разницу ссылаются display и _display.

Я опытный в Java, поэтому, когда это возможно, связать ваш ответ на него.

Спасибо

Ответы [ 3 ]

6 голосов
/ 28 января 2012

display - это название объекта. Это также влияет на то, как будут называться геттеры и сеттеры.

_display - это базовое поле в объекте, к которому свойство будет иметь доступ. Некоторым людям нравится оставлять это так же, как свойство - это поведение происходит по умолчанию, так что это легко; некоторые люди любят ставить префиксы на своих полях. (Некоторые сумасшедшие люди также любят использовать совершенно разные имена, но они сумасшедшие.)

3 голосов
/ 28 января 2012

С Объявленные свойства - Директивы реализации свойств :

Вы можете использовать форму property=ivar, чтобы указать, что для свойства должна использоваться конкретная переменная экземпляра, например:

@synthesize firstName, lastName, age=yearsOld;

Указывает, что методы доступа для firstName, lastName и age должны быть синтезированы и что свойство age представлено переменной экземпляра yearsOld.

0 голосов
/ 28 января 2012

это означает, что средство получения и настройки отображения обеспечивают доступ к переменной-члену _display.

Вы можете использовать это для внешнего переименования ваших свойств.

...