1

的行为Dictionary让我感到困惑:我有一个Dictionary,填充如下:

var playerControllers:Dictionary = new Dictionary();

playerControllers[id] = new PlayerController();

然后,我正在删除我的一个控制器:

delete playerControllers[id];   //I also tried playerControllers[id] = null;

然后:

for each (var playerController:PlayerController in playerControllers)
{
//"deleted" PlayerController exists! 
}

如何使用字典中的键删除值?

4

1 回答 1

3

这可能会有所帮助。

var playerControllers:Dictionary = new Dictionary(true);//弱引用

如果您使用Object as key.we 应该使用weak reference可能会在这种情况下帮助您。

即使您仍然从内存中删除 playerControllers[id],因为字典类仍然在字典中保存该 playerControllers[id] 引用。

为了更好地理解http://www.adobe.com/devnet/actionscript/learning/as3-fundamentals/associative-arrays.html#articlecontentAdobe_numberedheader_2

于 2013-03-04T05:18:33.497 回答