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,仅举三个例子)。
我有一组遗留的 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,仅举三个例子)。