Objective C中的结构数组或本机数据类型

时间:2009-04-16 01:21:45

标签: objective-c arrays struct

我现在遇到过这个问题几次。上次,我想创建一个BOOL数组(矩阵)。我最终将它们封装在NSStrings中,因为显然NSArray只有对象数组。

这一次,想要一个数组数组,但需要CGPoints。我将使用这些将图像绘制到屏幕上。有没有办法创建一个CGPoints数组,而不是它们是对象?我是否应该担心拥有96个对象矩阵的内存/性能开销?

1 个答案:

答案 0 :(得分:2)

我猜这96是一个非常小的数字,你不必太担心它。如果您正在使用CGPoints,则可以使用NSValue来封装点(而不是NSStrings),方法是使用iPhone上的[NSValue valueWithCGPoint:]方法或Mac OS X 10.5上的[NSValue valueWithPoint:]。

话虽如此,如果您提前知道它们的数量,那么创建一个CGPoints数组非常容易。我谈到了这些选项(对于字符串,而不是点)here。在这种情况下,您可以像这样在C中创建一个2D数组:

CGPoint myArray[32][3];

然后像CGPoint onePoint = myArray[2][1];

一样使用它