Objective C 使用多维数组初始化和对象

Objective C initing and object with a multi-dimensional array

我有一组遗留的 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}   },
}

我想用这些数据集来初始化 Objective 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,仅举三个例子)。