在 Objective-C 中迭代 NSCountedSet 时创建 NSMutableString 时出错

Getting an error when creating an NSMutableString when iterating an NSCountedSet in Objective-C

我在 for 循环中迭代 NSCountedSet,然后尝试创建一个由它持有的 NSString 对象以及该特定对象的计数组成的 NSMutableString,然后插入新创建的 NSMutableString进入 NSMutableArray。但是,当我这样做时,出现以下错误:

Attempt to mutate immutable object with appendFormat

这是我正在使用的代码:

    for (NSMutableString *myString in myCountedSet) {

        [myString appendFormat:@"-%lu", (unsigned long)[myCountedSet countForObject:myString]];
        [myArray addObject:myString];
    }

我只是想为 NSCountedSet 中的每个对象构造一个格式为 myString-count 的字符串,然后将这个字符串插入到一个数组中。谁能看出我做错了什么?

我猜你的字符串实际上不是可变的。所以把代码改成:

for (NSMutableString *myString in myCountedSet) {

    NSString *combinedString = [NSString stringWithFormat:@"%@-%lu", myString,(unsigned long)[myCountedSet countForObject:myString]];
    [myArray addObject:combinedString];
}