NSDictionary - 不要复制值?

时间:2010-10-24 21:35:12

标签: iphone objective-c nsdictionary

我正在尝试使用以下方法管理场景中的一些动画:

  1. 在循环中,创建动画 UIImageView,设置为on停止 方法。此外,存储此UIImageView 在NSMutableDictionary中。动画ID与字典中的键相同。

  2. 停止此动画后,获取动画ID。使用[animations objectForKey:animationID]获取imageview对象。我从superview中删除了imageview并将其释放。我还使用密钥从字典中删除了对象。

  3. 创建另一个动画对象,冲洗,重复。

  4. 问题是,当我根据键获取对象时,返回NULL。我认为这与字典的工作方式有关 - 它复制值而不是保留它们。因为它被复制了,我实际上无法删除该对象。

    如何让NSDictionary不要复制这些对象(所以我有原始版本)或者如何释放这些动画对象并在完成动画时将它们从superview中删除?

1 个答案:

答案 0 :(得分:1)

NSDictionary不会复制对象(仅限键)。你得到NULL的唯一原因是你提供了错误的密钥,或者该对象已被删除。

从你的描述中不是100%清楚,但你似乎建议你“2. ...从字典中删除对象......”然后“......得到了对象。 ..“。如果这是两个单独的活动,那么你肯定在第二次访问时找不到那里的对象。