Точка оператора в Objective-C 2.0 - PullRequest
3 голосов
/ 05 марта 2009

Просто взял Objective-C 2.0 и хотел узнать, есть ли какое-то преимущество в использовании оператора точки для доступа к свойствам вместо «старого» способа. Краткий пример того, что я имею в виду.

"старый" способ:

 [myFraction setNumerator: 1];
 [myFraction setDenominator: 3];

«новый» способ:

 myFraction.numerator = 1;
 myFraction.denominator = 3;

Спасибо!

Rodrigo

Ответы [ 5 ]

7 голосов
/ 05 марта 2009

Разница лишь в простоте ввода и удобочитаемости. Мнение о котором более читаемо отличается от человека к человеку:)

2 голосов
/ 05 марта 2009

Мне действительно нравится новый синтаксис - но, возможно, потому что я работаю программистом на Python.

Синтаксис свойства точки хорошо сочетается с ключевыми путями в KVC / KVO. На мой взгляд, это выглядит лучше, чем вложенные скобки (и мне нравится схема, поэтому я не против вложенности скобок!), И делает это явным при доступе к свойству, а не при передаче сообщения - даже если механизм является то же самое.

И я вижу, что доступ к свойству объекта (в основном) является той же самой операцией, что и доступ к членам структуры или объединения, поэтому синтаксис должен быть таким же.

2 голосов
/ 05 марта 2009

Я использую точечный синтаксис, когда спускаюсь с объекта, и использую скобку, чтобы фактически установить свойство.

Вроде так:

[self.view setFrame:CGRectMake(0, 0, 320, 480)];

Вместо:

[[self view] setFrame:CGRectMake(0, 0, 320, 480)];
1 голос
/ 05 марта 2009

Я буду отстаивать старый способ:

Синтаксис в квадратных скобках означает, что вы обращаетесь к членам объекта Objective-C, в то время как синтаксис точки указывает, что вы имеете дело со структурой (или объединением) C.

Помимо этого, это просто вопрос личного выбора и более / менее типизации.

0 голосов
/ 07 марта 2009

Программисты C ++ и C #, вероятно, будут более естественно адаптироваться к оператору точки при доступе к переменным-членам, поскольку он используется в тех же языках.

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