我有大约50个CGPoint对象来描述类似于"路径"的东西,我想将它们添加到NSArray中.它将是一个只返回给定索引的相应CGPoint的方法.我不想创建50个变量,比如p1=.;p2=.,以此类推.有没有一种简单的方法可以让我在用对象初始化NSArray时"立即"定义这些点?
我有大约50个CGPoint对象来描述类似于"路径"的东西,我想将它们添加到NSArray中.它将是一个只返回给定索引的相应CGPoint的方法.我不想创建50个变量,比如p1=.;p2=.,以此类推.有没有一种简单的方法可以让我在用对象初始化NSArray时"立即"定义这些点?
随着UIKit
版Apple将对CGPoint的支持增加到NSValue
版,因此您可以:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
[NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
nil];
列出与CGPoint一样多的[NSValue]实例,并以nil结束列表.此 struct 中的所有对象都会自动释放.
另一方面,从数组中提取值时:
NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];