Как я могу получить массив обнуления слабых ссылок под ARC? Я не хочу, чтобы массив сохранял объекты. И я хотел бы, чтобы элементы массива либо удалялись, когда они были освобождены, либо устанавливали эти записи в nil.
Аналогично, как я могу это сделать со словарем? Я не хочу, чтобы словарь сохранял значения. И снова, я хотел бы, чтобы словарные элементы либо удалялись, когда значения освобождались, либо устанавливали значения в nil. (Мне нужно сохранить ключи, которые являются уникальными идентификаторами, по крайней мере до тех пор, пока соответствующие значения не будут освобождены.)
Эти два вопроса охватывают сходное основание:
Но ни один из них не запрашивает ссылки на обнуление.
В документации ни NSPointerArray, ни NSHashMap не поддерживают слабые ссылки в ARC. NSValue nonretainedObjectValue не будет работать, поскольку он не обнуляется.
Единственное решение, которое я вижу, - создать мой собственный класс оболочки NSValue с свойством (weak)
, как этот ответ упоминается в конце. Есть ли лучший способ, который я не вижу?
Я разрабатываю для OS X 10.7 и iOS 6.0.