从iOS 6.0开始,系统提供了NSPointerArray,用于保存弱引用的指针。
示例
// 创建
thePlayers = [NSPointerArray weakObjectsPointerArray];
// 添加
[thePlayers addPointer:(__bridge void * _Nullable)(self)];
// 查找
for (Player *p in thePlayers]) {
if (p) {
// 可能为nil
}
}
// 去除已释放的指针
[thePlayers addPointer:nil]; // 一定要加这个
[thePlayers compact];
// 没有removePointer,需要自己遍历