我在名爲問題與的NSString
NSString *enemy;
在實現文件即時初始化該字符串從plist文件中這樣
NSString *path = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
NSDictionary *data = [NSDictionary dictionaryWithContentsOfFile:path];
NSDictionary *level_data = [data objectForKey:[@"Level" stringByAppendingFormat:@"%d", level]];
enemy = [level_data objectForKey:@"enemy"];
,然後這個「敵人」頭文件中有一個字符串字符串,當我用這樣的方法
-(void) addEnemy{
if([enemy isEqualToString:@"Ostrich"]){
[some_Obj valueCalc:t];
}
}
它工作正常的第一次調用該「addEnemy」的方法,但是當我再次調用這個方法的字符串「敵人」拋出一個異常。調試後,我知道在第二次調用方法「addEnemy」時,字符串「enemy」在調試器中顯示「變量不是NSString」。
,但如果我初始化「敵人」這樣的
enemy = [[NSString alloc] initWithString:[level_data objectForKey:@"enemy"]];
然後它工作相當精細。
誰能告訴我爲什麼會出現上述問題?
這是ARC嗎? – 2013-03-01 04:57:27
@KevinBallard可能不是。在ARC之下,這不太可能發生。 – 2013-03-01 05:10:31
應用程序崩潰時,完整的錯誤消息是什麼? – rmaddy 2013-03-01 05:29:21