Как удалить объект из NSMutableArray только тогда, когда количество записей достигает 0? - PullRequest
0 голосов
/ 19 июня 2011

Я знаю, что не должен проверять или использовать retainCount, но я пытаюсь задаться вопросом, есть ли способ удалить объект из NSMutableArray только после того, как его счетчик хранения равен 0.

По сути, я хочу добавить объекты в массив и сделать эти объекты доступными для других окон. Когда окно использует его, я хочу, чтобы количество сохранений увеличилось на 1. Когда оно больше не используется, я хочу, чтобы оно уменьшилось. Но, если какое-то окно все еще использует его, я хочу, чтобы оно было доступно для всех остальных окон. Когда все окна больше не используют его, я хочу, чтобы оно было удалено из массива и полностью освобождено.

Спасибо!

1 Ответ

2 голосов
/ 19 июня 2011

Для автоматического удаления из массива при выпуске вы можете использовать связанные объекты , как описал Дейв Делонг:
Как добавить живой объект в NSMutableArray и удалить его после освобождения?

Но вам, вероятно, будет лучше использовать NSCountedSet, поскольку реализует именно то, что вам нужно . Просто не хватает порядка вещей . Чтобы восполнить отсутствие порядка предметов, вы можете использовать дополнительные NSMutableArray, чтобы поддерживать порядок и добавлять / удалять предметы из него синхронно с вашим подсчитанным набором .

...