從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,需要自己遍歷