NSMapTable

2021-12-11  本文已影响0人  tom__zhu

先看一下NSMapTable是如何被使用的。为了对值做弱引用,所以使用NSMapTable。

// key is strong, value is weak because operation instance is retained by SDWebImageManager's runningOperations property
// 键是强引用,值是弱引用,因为operation实例已经被SDWebImageManager的一个属性强引用
// we should use lock to keep thread-safe because these method may not be accessed from main queue
typedef NSMapTable<NSString *, id<SDWebImageOperation>> SDOperationsDictionary;

NSMapTable是NSDictionary的通用版本,和NSDictionary/NSMutableDictionary不同的是,NSMapTable具有以下特性:

NOTE:
NSMapTable专注于强引用和弱引用,意味着swift中流行的值类型是不被适用的,因为只能作用于引用类型

参考

NSHashTable & NSMapTable
SDWebImage

上一篇 下一篇

猜你喜欢

热点阅读