When some codes like this:
objc_setAssociatedObject (
obj,
&key,
val,
OBJC_ASSOCIATION_RETAIN
);
Do I need to call related
objc_setAssociatedObject (
obj,
&key,
nil,
OBJC_ASSOCIATION_RETAIN
);
to release the retained value? Does Objective-C runtime auto release the associative references in dealloc or somewhere?
Associated objects will be released when the parent object is deallocated. See the documentation here, specifically this example:
At point 1, the string
overviewis still valid because theOBJC_ASSOCIATION_RETAINpolicy specifies that the array retains the associated object. When the array is deallocated, however (at point 2),overviewis released and so in this case also deallocated.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With