2010-08-23 35 views
0

我想动态添加数组中的元素。为此,我正在使用addObject在所有数组中创建相同的值

[myArray addObject:myword]; 

myword is a NSMutableString type object. 

对每个按钮单击myword获取更改。但是数组的所有元素都存储最后一个值。 假设第一次数组有1个元素=“我” 第二次数组应该有2个元素=“我”,“你”。但它显示“我”,“我”。可能是什么问题?

+0

发表您创建并添加单词的代码(可能是您的按钮操作方法..) – lukya 2010-08-23 11:06:47

+0

为什么使用可变字符串?在大多数情况下,你应该使用NSString。 – JeremyP 2010-08-23 11:24:51

回答

3

由于您可能一遍又一遍地存储同一个NSMutableString实例,所以更改它会改变“所有”元素是很自然的。毕竟,他们都指向同一个对象。

尝试:

[myArray addObject:[[myword copy] autorelease]]; 

或者,如果你需要有NSMutableStrings:

[myArray addObject:[[myword mutableCopy] autorelease]]; 

你需要在这里autorelease,否则你就会有一个内存泄漏。

相关问题