Точечная запись против квадратных скобок и приведение в Objective-C - PullRequest
11 голосов
/ 09 июня 2011

Что из нижеперечисленного является наилучшей практикой в ​​Objective-C?

UITableView* view = (UITableView*) [self view];
[view setSeparatorColor:[UIColor blackColor]];
[view release];

против

((UITableView*) self.view).separatorColor = [UIColor blackColor];

Или есть лучший способ написать это? self.view - это UIView*.

Я спрашиваю, потому что у меня странно выглядящий актерский состав (может быть, есть лучший способ?) И из-за следующего текста из официальной документации, который намекает на то, что это больше, чем просто вопрос стиля или личных предпочтений:

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

Ответы [ 3 ]

12 голосов
/ 09 июня 2011

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

view.step = 2.0;

... и не знаю, где step является скалярным свойством или имеет метод установки и т. Д. Я предпочитаю быть явным и буду использовать ...

[view setStep:2.0];

Но, опять же, я думаю, личные предпочтения.

3 голосов
/ 09 июня 2011

2 вещи

  1. Вы не спрашивали об этом, но - я любил эти "Одни строки" в начале, но через некоторое время, когда вы возвращаетесь к коду, он становится менее читабельным.

  2. точка кажется мне более читаемой

Я бы предпочел это -

    UITableView* view = (UITableView*)self.view;
    view.setSeparatorColor=[UIColor blackColor];

Но, в конце концов, это вопрос ваших собственных предпочтений.

0 голосов
/ 24 декабря 2012

Вы также можете разыграть в скобках и сохранить себе одну или две строки, используя этот синтаксис:

[(UITableView*) self.view setSeparatorColor:[UIColor redColor]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...