この記事の内容は、ARC を有効にしていることを前提としています。 NSHashTable と NSMapTable コレクションと参照カウント オブジェクトに対してアクセスしやすくしたい等の理由で、NSMutableDictionary 等のコレクションに他のオブジェクトがオーナーシップを持っているオブジェクトの参照を格納しておきたいケースがたまにあります。こういった場合、オーナーシップを持っているオブジェクトが対象のオブジェクトを解放したと同時にコレクションからも参照を削除するべきなのですが、削除処理の実装を忘れてしまったり処理が煩雑になったりしてしまいがちです。 NSArray, NSSet, NSDictionary 等のコレクションは、オブジェクトが追加されるタイミングでそのオブジェクトの参照カウントをインクリメント(retain)しています。逆に、オブジェクトが削除される、もし
![[iOS] 弱参照を扱えるコレクション NSHashTable と NSMapTable | アドカレ2013 : SP #8 | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/94278c55bbcf2f3a94c0ea058a4fdee76a294afd/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2013%2F12%2Fadvent_calendar_open_sp_8.png)