我正在製作一個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