2008/6/4 Rob Rothwell r.j.rothwell@gmail.com:
On Wed, Jun 4, 2008 at 3:55 AM, Norbert Hartl norbert@hartl.name wrote:
Hi
The objects are still referenced in the collection you get from self selected. The line with "each := nil" is useless as each is only a temporary variable. I assume that you want to empty the selected collection as well. you could do
DataManager>>deleteSelectedAbstractors self selected copy do: [:each | self abstractors remove: each. self selected remove: each. ]
So...why would I use a copy (self selected copy) in this case? Is that a clue to my misunderstanding?
Rob
because
self selected do: [:each | self selected remove: each ] is to avoid ... as it iterates on the collection on wich you're removing elements...
Try
aColl:=#(1 2 3) asOrderedCollection. ^aColl do: [:ea | aColl remove ea ]
see here: http://bugs.squeak.org/view.php?id=6937
Cédrick