gpt4 book ai didi

objective-c - 值没有正确增加

转载 作者:行者123 更新时间:2023-12-01 18:30:46 24 4
gpt4 key购买 nike

我正在尝试在 Objective-C 中增加一个变量。这似乎很容易:

dataPos++

但是当我这样做时,值会非常奇怪地增加:
dataPos: 1,
dataPos: 2,
dataPos: 3,
dataPos: 4,
dataPos: 12,
dataPos: 185273100`

这是我的代码:
int dataPos = 0;
uint8_t temparray[1];
for (int x=0; x < mapX; x++) {
for (int y=0; y < mapY; y++) {
for (int z=0; z < mapZ; z++) {
[mapdata getBytes:&temparray range:NSMakeRange(dataPos, dataPos+1)];
dataPos++;
NSLog(@"dataPos: %d", dataPos);
map[x][y][z] = temparray[0];
}
}
}

mapData 是一个 NSMutableData,里面有大约 4194308 个字节,map[][][] 是一个 uint8_t 数组。

我已经尝试清理构建文件夹,在模拟器(值永远不会增加,保持在 1)和设备上构建。

任何帮助深表感谢。

最佳答案

NSMakeRange需要一个位置和长度,而不是开始和结束位置。您可能在 temparray 中读取了太多数据并覆盖 dataPos进行中。见Foundation Functions Reference了解更多信息,并重写您的代码以阅读:

// snip
[mapdata getBytes:&temparray range:NSMakeRange(dataPos, 1)];
// snip

关于objective-c - 值没有正确增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com