0

我有一组结构 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 但不知道如何将这些“输入”到对象中。我害怕循环遍历这些或无论如何复制数据。

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

谢谢你的帮助。

4

1 回答 1

0

如果你想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 在许多地方(CGRect、CGPoint、NSRange 等等)都使用普通的旧 C 结构。

于 2015-01-01T02:07:29.373 回答