为什么我不能在for循环中追加字符串?

时间:2012-08-15 02:28:12

标签: objective-c for-loop nsstring nsmutablestring nsentitydescription

我有以下代码,我试图简单地遍历一个实体,并为每个NSPropertyDescription名称,将它附加到一个Mutable字符串,我将构建另一个字符串。

   - (void) createCSV {
    NSEntityDescription *anEntity = [NSEntityDescription entityForName:@"Missions" inManagedObjectContext:self.missionDatabase.managedObjectContext];

    NSMutableString *csvString = [NSString string];

    for (NSPropertyDescription *property in anEntity) {
        [csvString appendString:property.name];
    }
    NSLog(@"%@",csvString);
}

运行以下代码时的问题是我得到了

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with appendString:'

我无法弄清楚我做错了什么。我可以不将NSString附加到NSMutableString吗?

1 个答案:

答案 0 :(得分:1)

再看一遍。 csvString不可变。您正在创建NSString。创建NSMutableString如下所示:

 NSMutableString *csvString = [NSMutableString string];