也许你对NSArray使用了如指掌,每个加入到NSArry的对象都会被NSArray强持有。有时候,这种特性不是我们想要的结果。 有时候,我们想将对象存储起来,但是不想让数组增加了这个对象的引用计数,这个时候,WeakMutableArray才是你想要的。
示例.png
方法一:NSValue
iOS6.0之前,可以用[NSValue valueWithNonretainedObject:person]获取到对象的value,将这个value添加到数组中。效果如下:
NSValue.png
方法二:NSPointerArray
在iOS6.0之后出现了NSPointerArray。 他的初始化方法,可以创建强引用,弱引用对象的数组
NSPointerArray.png
同样,在iOS6.0之后 有NSHashTable类似于NSSet 有NSMapTable为NSDictionary 具体使用方法可以参考API
方法三:NSHashTable
NSHashTable.png
方法四:NSMapTable
NSMapTable.png
方法五:WeakMutableArray
WeakMutableArray.png