0

iVarsのカテゴリにを追加する予定ですobjc_setAssociatedObject()objc_removeAssociatedObjects()しかし、それらを取り除くためにいつ電話すればよいかわかりません。

それを使用しているオブジェクトがいつだったかをカテゴリが知る方法はありますde-allocatedか?

4

1 に答える 1

2

との関連付けを設定すると

objc_setAssociatedObject(self, &key, otherObject, OBJC_ASSOCIATION_RETAIN);
// or OBJC_ASSOCIATION_RETAIN_NONATOMIC

thenotherObjectは、割り当てが解除されると自動的に解放されselfます。(少なくともARCを使用している場合、これは手動参照カウントでも正しいと思います。)

objc_removeAssociatedObjects()そのため、メイン オブジェクトの割り当てが解除される前に追加されたオブジェクトを削除したい場合を除き、明示的に呼び出す必要はありません。

于 2013-04-09T09:45:01.423 に答える