像这样的马洛克
int **terrain;
terrain = malloc(sizeof(int*) * mapSize.x);
for (int i = 0; i < mapSize.x; i++) {
terrain[i] = malloc(mapSize.y * sizeof(int));
}
用它。在保存之前像这样转换为 NSdata
NSData *data=[NSData dataWithBytes:terrain length:(30*sizeof(int*) +30*30*sizeof(int) )];
[rootObject setValue:data forKey:@"terrain"];
[NSKeyedArchiver archiveRootObject: rootObject toFile: path];
加载到 NSdata 然后转换回int**
rootObject = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSData *data = [rootObject valueForKey:@"terrain"];
terrain =(int**) [data bytes];
使用此代码,它是否保存了*int
地址,然后当我加载数据时它不再指向正确的数据?或者我对
文档中描述的“字节顺序”有问题吗
如果是地址问题,我是否应该在保存转换*int
为 NSData 时放置一个 for 循环,然后保存所有这些并**int
使用另一个 for 循环/malloc 重新创建?