Flex: функция клонирования дублирует мои данные - PullRequest
3 голосов
/ 04 февраля 2010

У меня странное поведение при использовании ObjectUtil.copy () и ByteArray.writeObject / readObject ().
Я клонирую коллекцию ArrayCollection, и иногда результатом является два идентичных экземпляра класса.

Пример:

var item:Object = new Object();
item.name = "Hello World";

var listItem:ArrayCollection = new ArrayCollection();
listItem.push(item:Object );

var cloneList:ArrayCollection = ObjectUtil.copy(listItem);

trace(cloneList.length);    
// 2

Я не понимаю, что я сделал неправильно. Есть что-то упущено? Это не воспроизводимо для всех ArrayCollection. Некоторое время все работает нормально. Это ошибка функции ObjectUtil.copy ()?

1 Ответ

0 голосов
/ 07 февраля 2010

Если вам нужен клон коллекции массивов, который будет содержать ссылки на экземпляры исходной коллекции массивов, не можете ли вы просто клонировать исходный массив?

, например

var listItem:ArrayCollection = new ArrayCollection();
listItem.push(item:Object );

var cloneList:ArrayCollection = new ArrayCollection(new Array().concat(listItem.source));
...