iphone - touch教程 - cocoa touch框架




如何以简单的方式将CGPoint对象添加到NSArray? (3)

你也可以用标准的C / C ++方式编写它:

CGPoint oldschool[] = { CGPointMake(5.5, 6.6),
                        CGPointMake(7.7, 8.8) };

CGPoint p2 = oldschool[1];

我有大约50个描述类似“路径”的CGPoint对象,我想将它们添加到NSArray中。 这将是一种方法,将只返回给定索引的相应CGPoint。 我不想创建50个变量,如p1 = ...; p2 = ...等等。 有没有一种简单的方法可以让我在用对象初始化NSArray时“立即”定义这些点?


你看过CFMutableArray吗? 这可能对你更好。


使用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结束列表。 该结构中的所有对象都是自动释放的。

另一方面,当您将值从数组中拉出时:

NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];




uikit