目标C启动和具有多维数组的对象



我有一组结构体SpaceData的遗留多二元数组;下面是一个典型的数组,有些更大。

SpaceData dataArray[2][4] ={
{   {16, 0, false}, {6, -2, true}, {9, -1, true}, {9, 0, true}  },
{   {1, 0, false}, {8, -2, true}, {0, -1, true}, {0, 0, true}   },
}

我想使用这些来使用这些数据集初始化目标 C 对象。所以我正在创建一个 SpaceDataClass,但不知道如何将它们"馈送"到对象中。我害怕循环浏览这些或无论如何复制数据。

有没有更简单的方法让对象属性指向这些已经存在的数据结构?

感谢您的帮助。

如果你想SpaceData成为一个Objective-C对象,并且你想将这些对象存储在一个多维NSArray那么就不必初始化三个NSArray实例和8个SpaceData实例(根据你的例子):

NSArray* dataArray = @[ 
    @[ [SpaceData dataWithX:16 Y:0 active:NO], [SpaceData dataWithX:9 Y:-2 active:YES], [SpaceData dataWithX:9 Y:-1 active:YES], [SpaceData dataWithX:9 Y:0 active:NO] ],
    @[ [SpaceData dataWithX:1 Y:0 active:NO], [SpaceData dataWithX:8 Y:-2 active:YES], [SpaceData dataWithX:0 Y:-1 active:YES], [SpaceData dataWithX:0 Y:0 active:YES] ]
];
然而,Objective-C只是普通旧C

之上的一层,没有什么能阻止你在"Objective-C"代码中做"C"的事情。 如果适合您的需求,您可以继续使用普通的旧 C 结构来保存此类数据。 AppKit,UIKit和Foundation在许多地方使用普通的C结构(CGRect,CGPoint,NSRange,仅举三例)。

最新更新