Разве неправильно использовать такие функции, как CGRectMake в методе, а не создавать переменную в первую очередь? - PullRequest
1 голос
/ 15 февраля 2011

например:

someView = [[UIView alloc] initWithFrame:CGRectMake(120, 205, 200, 200)];

вместо:

CGRect frame = CGRectMake(120, 205, 200, 200);
someView = [[UIView alloc] initWithFrame:frame];

Кажется, я вижу только второй пример.Это только для удобства чтения?Или для этого есть веская причина?

Ответы [ 4 ]

2 голосов
/ 15 февраля 2011

Это просто вопрос стиля.Они эквивалентны и, вероятно, скомпилируют одно и то же

1 голос
/ 16 февраля 2011

Обе части кода имеют одинаковый эффект.Может быть несколько причин для использования второго шаблона:

  • Код может быть легче для чтения.Вы можете назвать переменную более описательной.

  • Если вы многократно используете один и тот же прямоугольник, возможно, имеет смысл объявить его один раз и использовать повторно.Хотя CGRectMake является недорогой операцией, она все еще может быть полезной практикой, особенно если вы выполняете этот код много раз в цикле.

1 голос
/ 15 февраля 2011

Единственная разница, как вы уже отметили, читабельность. Это также делает структуру CGRect повторно используемой в других местах вашего кода, если вам нужны такие же размеры.

0 голосов
/ 16 февраля 2011

Проблема со вторым вариантом, если вы делаете много CGRect с одной и той же областью действия, вам нужно либо предотвратить переопределение вашего кода frame, перезаписать переменную, либо придумать другоеимена для разных фреймов.

Чтобы сделать ваш код более переносимым, я бы использовал каждый раз первый вариант.Но если бы он стал слишком сложным, я бы выделил его для удобства чтения.

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