1

我有以下代码,我试图简单地循环遍历一个实体,并且对于每个 NSPropertyDescription 名称,将其附加到一个可变字符串,我将在其中构建一个进一步的字符串。

   - (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 吗?

4

1 回答 1

1

再看一遍。csvString是不可变的。您正在创建一个NSString. 创建一个NSMutableString看起来像这样:

 NSMutableString *csvString = [NSMutableString string];
于 2012-08-15T02:30:40.967 回答