Нужно ли "я"?
Всегда ли необходимо использовать "я" в 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;
необходимы.
Если вы получаете доступ к ивару, самообслуживание не нужно.
Надеюсь, это поможет.
-РЕЗЮМЕ