Нужно ли "я"?

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

5 ответов

Решение

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

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

[someObj setDelegate:self];

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

[self doMethod]

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

self.someProperty = @"blah"; //Uses the setter
someProperty = @"blah"; //Directly sets the variable

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

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

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

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

[Сам сделай что-нибудь]; и self.myProperty;

необходимы.

Если вы получаете доступ к ивару, самообслуживание не нужно.

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

-РЕЗЮМЕ

Другие вопросы по тегам