UIImage imageНазначенный размер - PullRequest
       1

UIImage imageНазначенный размер

1 голос
/ 26 декабря 2011

Впервые в Objective-C, какао и скомпилированных языках, так что прости мое невежество:

UIImage *myImage = [UIImage imageNamed:@"1-filter.jpg"];
NSLog(@"myImage.size=%@", myImage.size);

Результаты в Поток 1: Porgram получил сигнал: "EXC_BAD_ACCESS".

Почему? Как мне получить размер UIImage?

Ответы [ 2 ]

4 голосов
/ 26 декабря 2011

Размер является структурой.

Используйте size.width, size.height или NSStringFromCGSize(myImage.size) для NSLog вывода.

2 голосов
/ 26 декабря 2011

Это тонкая, досадная ошибка для начинающих. (Я на самом деле только что столкнулся с этой на прошлой неделе.)

Когда вы используете строку формата %@ в NSLog, аргумент должен быть неким объектом Objective-C. (За кадром, когда вы делаете NSLog(@"%@", foo), система вызывает [foo description], чтобы выяснить, какую строку выводить. Если переменная, которую вы передаете NSLog, не является объектом Objective-C, система попытается отправить сообщение что-то, что не является объектом, а затем выбросить эту ошибку.)

В этом конкретном случае вы получите целое число, поэтому замените %@ на %d в строке формата, чтобы все работало нормально.

Кроме того, как упомянул Евгений, вы хотите получить доступ к части объекта size. Так что попробуйте

NSLog(@"size.height=%d", myImage.size.height);

Редактировать: на самом деле это должно быть %f вместо %d, и, пожалуйста, прочитайте комментарии к этому ответу.

...