Преобразование CGRect в NSValue в массиве и наоборот - PullRequest
11 голосов
/ 04 июля 2011

У меня есть массив, полный CGRects. Эта часть в порядке. Проблема в том, что когда я иду, чтобы получить CGRects из массива, я получаю странные ошибки. Проверьте мой код.

NSArray *frameLocations = [NSArray arrayWithObjects:
                           [NSValue valueWithCGRect:CGRectMake(20, 20, 121, 124)],
                           [NSValue valueWithCGRect:CGRectMake(176, 20, 121, 124)],
                           nil];

Чем я получаю кадр в цикле for, например:

 CGRect *imageFrame = [[frameLocations objectAtIndex:i] CGRectValue];

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

1 Ответ

16 голосов
/ 04 июля 2011

Попробуйте:

CGRect imageFrame = [[frameLocations objectAtIndex:i] CGRectValue];

Вы получаете реальный CGRect, а не указатель на CGRect, потому что это примитивный тип в стиле C, а не объект Objective-C.

Кроме того, ваш код выглядит правильно.

...