iVars
のカテゴリにを追加する予定ですobjc_setAssociatedObject()
。objc_removeAssociatedObjects()
しかし、それらを取り除くためにいつ電話すればよいかわかりません。
それを使用しているオブジェクトがいつだったかをカテゴリが知る方法はありますde-allocated
か?
iVars
のカテゴリにを追加する予定ですobjc_setAssociatedObject()
。objc_removeAssociatedObjects()
しかし、それらを取り除くためにいつ電話すればよいかわかりません。
それを使用しているオブジェクトがいつだったかをカテゴリが知る方法はありますde-allocated
か?
との関連付けを設定すると
objc_setAssociatedObject(self, &key, otherObject, OBJC_ASSOCIATION_RETAIN);
// or OBJC_ASSOCIATION_RETAIN_NONATOMIC
thenotherObject
は、割り当てが解除されると自動的に解放されself
ます。(少なくともARCを使用している場合、これは手動参照カウントでも正しいと思います。)
objc_removeAssociatedObjects()
そのため、メイン オブジェクトの割り当てが解除される前に追加されたオブジェクトを削除したい場合を除き、明示的に呼び出す必要はありません。