NSMutableArray 对对象元素是强引用的,那么如何实现NSMutableArray 弱引用对象元素呢?
在NSMutableArray分类或子类中实现如下构造方法:
+(ELWeakMutableArray *)mutableArrayUsingWeakReferences{
return [self mutableArrayUsingWeakReferenceWithCapacity:0];
}
+(ELWeakMutableArray *)mutableArrayUsingWeakReferenceWithCapacity:(NSUInteger)capacity{
CFArrayCallBacks callBacks = {0,NULL,NULL,CFCopyDescription,CFEqual};
return CFBridgingRelease(CFArrayCreateMutable(0, capacity, &callBacks));
}
使用mutableArrayUsingWeakReferences初始化对象即可.
另外,NSMapTable可支持弱引用对象.