3

我收到一个错误“尝试使用 appendString 改变不可变对象:”

我的代码是

NSMutableString *resultString= [[NSMutableString alloc]init];


for (NSMutableString *s in self.ArrayValue)
{
    [resultString appendString:s];
    NSLog(resultString);

}  

ArrayValue 是 NSMutableArray。
我无法理解问题出在哪里

先感谢您

4

3 回答 3

7

如发布的那样,您拥有的代码不会给您描述的错误。可能在分配 resultString 和 for 循环之间的某个地方,您正在用普通的 NSSring 覆盖它。

于 2011-03-08T13:47:10.537 回答
2

只是有这样的:

这个对我有用...

    NSMutableString *resultString= [[NSMutableString alloc]init];
NSMutableArray *ArrayValue=[[NSMutableArray alloc]init];
[ArrayValue addObject:@"One"];
[ArrayValue addObject:@"Two"];
[ArrayValue addObject:@"Three"];

for (NSMutableString *s in ArrayValue)
{
    [resultString appendString:s];
    NSLog(@"%@",resultString);------->You should use %@ to print the string otherwise will show your warning.

}  

控制台上的 O/P:

2011-03-08 19:13:02.243 iPadMables[4557:207] 一

2011-03-08 19:13:06.224 iPadMables[4557:207] OneTwo

2011-03-08 19:13:09.388 iPadMables[4557:207] OneTwoThree

于 2011-03-08T13:46:12.290 回答
2
    ArrayValue = [NSMutableArray arrayWithObjects:@"b",@"o",@"n",nil];
NSMutableString *resultString= [[NSMutableString alloc]init];

for (NSMutableString *s in self.ArrayValue)
{
    [resultString appendString:s];
    NSLog(resultString);

}  

为我工作..

于 2011-03-08T13:48:16.113 回答