我正在制作一个iPhone应用程序,玩家使用汽车。我希望玩家能够保存他们想要使用的汽车颜色的设置。当我读取我用来存储玩家汽车颜色的文件时,我的全局NSString变量不会更改值。这里是我的代码:nsstring赋值问题
NSString *carColor;
NSString *filePath2 = [[NSBundle mainBundle] pathForResource:@"carColor" ofType:@"txt"];
if(filePath2){
carColor = [NSString stringWithContentsOfFile:filePath2 encoding:NSUTF8StringEncoding error:NULL];
}
currentCarImage = [NSString stringWithString:carColor];
变量carColor被分配了正确的事情,但是当我看到在调试器它说,currentCarImage是一个空字符串。如果我要把这个:
currentCarImage = @"greenCar.png";
它会工作得很好。我甚至试过这个:
NSString *filePath2 = [[NSBundle mainBundle] pathForResource:@"carColor" ofType:@"txt"];
if(filePath2){
currentCarImage = [NSString stringWithString:[NSString stringWithContentsOfFile:filePath2 encoding:NSUTF8StringEncoding error:NULL]];
}
但是这也没有奏效。有任何想法吗?
编辑: 我设法让它工作,但它仍然不是很满意。我将我的代码更改为:
NSString *carColor;
NSString *filePath2 = [[NSBundle mainBundle] pathForResource:@"carColor" ofType:@"txt"];
if(filePath2){
carColor = [NSString stringWithContentsOfFile:filePath2 encoding:NSUTF8StringEncoding error:NULL];
}
if([carColor isEqualToString:@"greenCar.png"]){
currentCarImage = @"greenCar.png";
}
if([carColor isEqualToString:@"blueCar.png"]){
currentCarImage = @"blueCar.png";
}
if([carColor isEqualToString:@"redCar.png"]){
currentCarImage = @"redCar.png";
}
if([carColor isEqualToString:@"purpleCar.png"]){
currentCarImage = @"pupleCar.png";
}
if([carColor isEqualToString:@"yellowCar.png"]){
currentCarImage = @"yellowCar.png";
}
if([carColor isEqualToString:@"turquoiseCar.png"]){
currentCarImage = @"turquoiseCar.png";
}
没有stingWithString'的'点,只是'currentCarImage = [NSString的stringWithContentsOfFile:FILEPATH2编码:NSUTF8StringEncoding错误:NULL];'足够了。建议:花时间知道你为什么写代码。 – zaph 2012-01-11 00:41:16
尝试过,但不幸的是,似乎没有工作 – 2012-01-11 00:46:57
该值打印为空字符串还是“(null)”? – 2012-01-11 00:49:01