我的头文件中有一个字符串,名为
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”方法时效果很好,但是当我再次调用此方法时,字符串“enemy”会引发异常。调试后,我知道在第二次调用方法“addEnemy”时,字符串“enemy”在调试器中显示“Variable is not NSString”。
但是如果我像这样初始化“敌人”
enemy = [[NSString alloc] initWithString:[level_data objectForKey:@"enemy"]];
然后它工作得很好。
谁能告诉我为什么会出现上述问题?