2010-08-23 3 views
0

Я хочу добавить элемент в массив динамически. Для этого я используюaddObject создает одно и то же значение во всем массиве

[myArray addObject:myword]; 

myword is a NSMutableString type object. 

на каждой кнопке click myword получить изменения. Но весь элемент массива сохраняет последнее значение. Предположим, что в первом случае массив имеет 1 элемент = «я» Второй массив времени должен иметь 2 элемента = «я», «вы». Но это показывает «я», «я». что может быть проблемой?

+0

напишите код, в котором вы создаете и добавляете слово (возможно, ваш метод действий с кнопками ..) – lukya

+0

Почему вы используете изменяемую строку? В большинстве ситуаций вы должны использовать NSString. – JeremyP

ответ

3

Поскольку вы, вероятно, сохраняете один и тот же экземпляр NSMutableString снова и снова, естественно, что его изменение изменяет «все» элементы. В конце концов, все они указывают на один и тот же объект.

Try:

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

Или, если вам нужно иметь NSMutableStrings:

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

Вам нужен autorelease здесь, в противном случае вы бы утечку памяти.

Смежные вопросы