将CGRect转换为Array中的NSValue,反之亦然

时间:2011-07-04 18:30:37

标签: iphone nsarray cgrect

我有一个充满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 个答案:

答案 0 :(得分:16)

尝试:

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

你得到一个实际的CGRect,而不是指向CGRect的指针,因为它是一个原始的C风格类型,而不是Objective-C对象。

除此之外,您的代码看起来是正确的。