Swift-对Collection集合类使用弱引用

572 阅读1分钟

Swift的Collection集合对象,其默认为强引用,想要使用弱引用,需要使用另外的对象;

  • Array

Array使用 NSPointerArray 对象实现;

let strongArr = NSPointerArray.strongObjects()//强引用

let weakArr = NSPointerArray.weakObjects()//弱引用
  • Dictionary

Dictionary使用 NSMapTable<KeyType, ObjectType> 对象实现,括号中对应的类型为 AnyObject ;

let strongDic = NSMapTable<NSString,NSString>.strongToStrongObjects()//强引用

let weakDic = NSMapTable<NSString,NSString>.strongToWeakObjects()//弱引用
  • Set

Set使用 NSHashTable 对象实现,括号中对应的类型为 AnyObject ;

let weakSet = NSHashTable<AnyObject>.weakObjects()//弱引用