NSMapTable似乎是一个更强大,更灵活的NSMutableDictionary表兄弟。它可以配置为在NSMutableDictionary中工作(复制键并保持强引用值)在什么情况下我不应该使用NSMapTable?
答案 0 :(得分:0)
我希望在99%的案例中NSDictionary
(和NSSet
)。更多的抽象意味着更大的复杂性和更多的错误方法。
我只会在一种情况下使用NSMapTable
(和NSHashTable
)来存储弱引用。
我看不出任何其他有用的东西。
答案 1 :(得分:0)
请注意,如果使用弱弱,弱强或弱弱绑定,NSMapTable有时不会释放键和对象{。{3}}。
同样在NSMapTable.h中,你可以发现,当弱密钥被回收时,'条目不一定就被清除了:
+ (id)weakToStrongObjectsMapTable NS_AVAILABLE(10_8, 6_0);
// entries are not necessarily purged right away when the weak key is reclaimed
+ (id)weakToWeakObjectsMapTable NS_AVAILABLE(10_8, 6_0);
// entries are not necessarily purged right away when the weak key or object is reclaimed