gpt4 book ai didi

iphone - Objective c - NSDictionary 保留对象问题

转载 作者:行者123 更新时间:2023-12-03 20:42:49 39 4
gpt4 key购买 nike

我会尝试解释一下自己,我有一个对象 Person 和一个单例对象 PeopleManager,它有一个 NSDictionary *_people。< br/>_people 是一个字典,其中包含以 personId 作为键的 Person 对象。

当一个人被创建时,我将它(self)添加到_people字典中(在Person init 方法)

人员字典应该保存人员对象,直到人员被释放为止,但问题是,如果我在代码中的某个位置分配人员然后释放它,它将不会被释放,因为 PeopleManager 仍然保留在 _people 字典中。

真正的问题是 _people 字典保留了 person,如果可以有一个分配字典那就太好了,但我知道这是不可能的。

我该如何解决这个问题?

最佳答案

字典必须保留 person,因为它正在使用 person。如果没有发生这种情况,字典就无法保证它的对象始终保持事件状态。

当你释放 Person 时,你不再需要它并期望它被释放,通过 [NSMutableDictionary -removeObjectForKey:] 将其从字典中删除(从而减少保留计数)。但这需要使用 NSMutableDictionary,因为您无法从 NSDictionary 中删除对象。

关于iphone - Objective c - NSDictionary 保留对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10774602/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com