Подтвердить что ты не робот

Лучше использовать CGRectGetHeight (view.bounds) или view.bounds.size.height непосредственно в Objective-C

Я не могу найти, где я его прочитал, но я помню, что натолкнулся на то, что предлагало лучше получить высоту CGRect с помощью CGRectGetHeight(rect) вместо доступа к переменной через rect.size.height

CGFloat height = CGRectGetHeight(self.frame);
// vs  
CGFloat height = self.frame.size.height;

В большинстве случаев это связано с представлениями в моем использовании, и мне было интересно, существует ли реальная разница (кроме синтаксиса), которая разделяет эти две строки кода.

Если кто-то предпочтительнее другого, объяснение, почему было бы здорово!

4b9b3361

Ответ 1

Структуры CGRect могут сохранять высоту и ширину в отрицательных значениях, а CGRectGetHeight всегда возвращает положительную. В Swift 3.0 CGRect.height свойство должно использоваться вместо CGRectGetHeight.

CGRect.height

Независимо от того, сохраняется ли высота в данных CGRect структуры как положительное или отрицательное число, эта функция возвращает как будто прямоугольник был стандартизован. То есть результат никогда не отрицательное число.