NSFoundation weak collection

从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,需要自己遍历

你可能感兴趣的:(NSFoundation weak collection)