myProp = value;
Это прямое присвоение переменной C.Это вообще не доступ к свойству.
self.myProp = value;
Это синтаксический сахар для:
[self setMyProp: value];
Что это значит?Это означает, что первый преобразуется компилятором во второй, прежде чем выдавать код для него.Это означает only точечной нотации.Пока класс объявляет методы myProp
и setMyProp:
, точечная нотация будет работать.myProp
не обязательно должно быть свойством в формальном смысле (т. Е. Объявлено с @property
).Это также не должно быть синтезировано.Там не должно быть единственной переменной экземпляра, чтобы поддержать это.Пока эти два метода существуют во время выполнения (или метод получения, если вы никогда не присваиваете свойству), вы можете использовать точечную нотацию.Он ортогонален свойствам Objective-C.
Так что ответ таков: да, для ваших вторых двух примеров это чисто вопрос стиля.Лично я ненавижу точечные обозначения.Это ненужное загрязнение синтаксиса языка (я имею в виду, что теперь у нас есть два способа выражения отправки сообщений, один из которых выглядит идентично совершенно другой языковой функции)./ Декламация