如何使用Objective-C在数组中存储(x,y)坐标?

mac*_*bie 4 iphone objective-c

我有一个Objective-C方法,它使用图像中的一些x和y值:image.center.ximage.center.y.我想在每次调用此方法时将它们存储起来,所以我希望使用数组.

如何才能做到这一点?我怀疑使用NSMutableArray?

Bra*_*son 12

我建议将这些点存储在NSArray中,使用NSValue包装:

NSMutableArray *arrayOfPoints = [[NSMutableArray alloc] init];

[arrayOfPoints addObject:[NSValue valueWithCGPoint:image.center]];

// Do something with the array
[arrayOfPoints release];
Run Code Online (Sandbox Code Playgroud)

这假定这image.center是一个CGPoint结构(如果没有,你可以使用它CGPointMake()).

要提取CGPoint,只需使用

[[arrayOfPoints objectAtIndex:0] CGPointValue];
Run Code Online (Sandbox Code Playgroud)


hot*_*aw2 6

C数组是Objective C的适当子集,并且比使用Cocoa Foundation类生成更快的代码并且通常使用更少的内存.你可以添加:

CGPoint myPoints[MAX_NUMBER_OF_POINTS];
Run Code Online (Sandbox Code Playgroud)

你的实例变量; 并保存坐标:

myPoints[i] = image.center;
Run Code Online (Sandbox Code Playgroud)

  • +1,如果你使用*lot*积分,这可能是最好的方法,因为你没有被无意中创建吨和大量的`NSValue`对象. (2认同)