Ответ 1
Это вопрос личного выбора. Есть те, которые утверждают, что точечная нотация делает непонятным, что сообщения отправляются (методы вызывают), поскольку он выглядит так же, как и элемент структуры структуры C-стиля. Другая сторона аргумента состоит в том, что точечную нотацию легче печатать, читать легче и более кратким.
Как кто-то, кто писал Objective-C, так как до того, как была введена точечная нотация (в Objective-C 2.0), я могу понять аргументы с обеих сторон, но предпочитаю использовать точечную нотацию. Тем не менее, я считаю важным, чтобы люди, начинающие с Objective-C, понимали, что синтаксис точечной нотации преобразуется в стандартные вызовы метода доступа при компиляции. Я думаю, что авторы книги Big Nerd Ranch, вероятно, имеют схожую позицию, и что большая часть того, почему они решили использовать скобки в книге.
Итак, сделайте то, что вам больше нравится. Оба действительны, и выбор между ними по существу является вопросом стиля. Независимо от того, что вы выберете, убедитесь, что вы понимаете, что оба стиля создают эквивалентный скомпилированный код.
EDIT: Я забыл ответить на вопрос о преобразовании точечной нотации в синтаксис скобок. Вы близки, но то, что вы написали, неверно и на самом деле не компилируется. Это должно быть: [[self display] setText:[[[self display] text] stringByAppendingString:digit]]
. Если бы я писал это, я бы разделил его на две строки (ну, действительно, я бы использовал точечную нотацию):
NSString *stringWithDigit = [[[self display] text] stringByAppendingString:digit];
[[self display] setText:stringWithDigit];
EDIT 2: Прошло более трех лет с тех пор, как я написал этот ответ. Я просто хотел бы отметить, что в наши дни многие другие классы каркаса Apple имели вещи, которые ранее были обычными методами, преобразованными в @properties (например, -[NSArray count]
), предположительно для лучшего взаимодействия Swift. Это заставило меня использовать точечную нотацию еще более либерально, чем раньше.