我有大约50个描述类似“路径”的CGPoint对象,我想将它们添加到NSArray中。它将是一个只返回给定索引的相应CGPoint的方法。我不想创建50个变量,比如p1 = ...;p2 = ...等等。有没有一种简单的方法可以让我在使用对象初始化NSArray时“立即”定义这些点?
发布于 2009-05-22 19:44:41
通过UIKit
,苹果在NSValue
中增加了对CGPoint的支持,所以你可以这样做:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
[NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
nil];
列出与CGPoint一样多的NSValue实例,并以nil结尾。此结构中的所有对象都会自动释放。
另一方面,当您将值从数组中拉出时:
NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];
发布于 2014-05-06 10:22:32
我使用的是:
创建数组:
NSArray *myArray = @[[NSValue valueWithCGPoint:CGPointMake(30.0, 150.0)],[NSValue valueWithCGPoint:CGPointMake(41.67, 145.19)]];
获取第一个CGPoint对象:
CGPoint myPoint = [myArray[0] CGPointValue];
发布于 2015-05-31 20:42:38
您还可以将其编写为以下内容的最小形式:
CGPoint myArray[] = { CGPointMake(5.5, 6.6), CGPointMake(7.7, 8.8) };
CGPoint p2 = myArray[1];
https://stackoverflow.com/questions/899600
复制相似问题