Нужно ли «я»? - PullRequest
       28

Нужно ли «я»?

6 голосов
/ 07 мая 2010

Является ли когда-либо необходимым использование «я» в Objective-C или, может быть, просто хорошей практикой?Я перешел от того, чтобы использовать его все время, чтобы не использовать его вообще, и я, кажется, не замечаю никакой разницы.Разве это не подразумевается?

Ответы [ 5 ]

5 голосов
/ 07 мая 2010

self необходимо, если вы хотите, чтобы объект отправлял сообщения, ну, это self. Иногда также полезно получить доступ к свойствам через геттеры / сеттеры, в этом случае вам также нужно будет использовать self, как в self.propertyname или self.propertyname = value. (Они не эквивалентны propertyname или propertyname = value.

3 голосов
/ 07 мая 2010

Нет необходимости при обращении к переменным экземпляра. Это необходимо, когда вы хотите передать ссылку на текущий объект другому методу, например, при установке делегата:

[someObj setDelegate:self];

Также необходимо при вызове метода в том же классе для текущего объекта:

[self doMethod]
1 голос
/ 07 мая 2010

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

И это необходимо, когда у вас есть объекты с одинаковыми именами в разных классах, тогда клавиша «self» сообщит вашему программному обеспечению, что вы ссылаетесь на объект в этом же классе.

Это обычно происходит в больших проектах.

1 голос
/ 07 мая 2010

Для работы с переменными это зависит. Если вы хотите использовать синтезированный геттер или сеттер, используйте точечную запись с self.

self.someProperty = @"blah"; //Uses the setter
someProperty = @"blah"; //Directly sets the variable
0 голосов
/ 07 мая 2010

Да, поскольку Objective C не имеет вызовов методов, таких как C / C ++, но использует отправку сообщений self для контекстов, подобных

[self doSomething];и self.myProperty;

необходимы.

Если вы обращаетесь к ивару, self не требуется.

Надеюсь, это поможет.

-CV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...