Iphone 通过NSString加载地图
我正在做一个游戏,需要在多维数组中保存一个平铺贴图。在我的游戏中,我制作了所有这些地图,这些地图都是NSString,包含所有需要保存的值,我希望将NSString的所有256个值保存到一个int 16x16多维数组中 这是我目前的代码,但它不工作Iphone 通过NSString加载地图,iphone,objective-c,Iphone,Objective C,我正在做一个游戏,需要在多维数组中保存一个平铺贴图。在我的游戏中,我制作了所有这些地图,这些地图都是NSString,包含所有需要保存的值,我希望将NSString的所有256个值保存到一个int 16x16多维数组中 这是我目前的代码,但它不工作 -(void)LoadMap:(NSString*)mapString { for(int h = 0; h < kMapSize; h++) { for(int w = 0; w < kMapSize;
-(void)LoadMap:(NSString*)mapString
{
for(int h = 0; h < kMapSize; h++)
{
for(int w = 0; w < kMapSize; w++)
{
map[w][h] = [[mapString substringWithRange:NSMakeRange((h)+(w*kMapSize), 1)] intValue];
}
}
}
-(void)LoadMap:(NSString*)mapString
{
对于(int h=0;h
任何帮助都会很好,谢谢:)有两个潜在错误:
可能不等于16。这个变量有一个误导性的名称,因为一般读者会认为它应该是256。也许可以将其重命名为kMapWidthkMapSize
的长度可能不是256个字符。您可能需要在mapString
的开头检查LoadMap
[mapString length]
- 下面的代码工作正常。也许第二行是错误的原因
// initial data
NSInteger kMapSize = 3;
char map[3][3]; <-- this row ?
NSString *mapString = @"000111222";
// put initial data into 'map' array
for(int h = 0; h < kMapSize; h++) {
for(int w = 0; w < kMapSize; w++) {
map[w][h] = [[mapString substringWithRange:NSMakeRange((h)+(w*kMapSize), 1)] intValue];
}
}
// confirm whether the data is stored successfully
for (int h = 0; h < kMapSize; h++) {
for (int w = 0; w < kMapSize; w++) {
NSLog(@"%d", map[w][h]);
}
}
//初始数据
NSInteger kMapSize=3;
字符映射[3][3];发生了什么而不是你期望的?运行时异常?编译错误?结果数据不正确?BSOD?猪飞?靠水果经营?通常,解决编程问题的关键在于某些“不起作用”的具体细节。您是否询问如何标记NSString中的每个值,并在多数组中使用这些值?出现运行时错误,表示带范围的子字符串正在尝试获取不在其中的数据。我觉得非常愚蠢,但是的,字符串短于256个字符