> On Jan 25, 2017, at 11:23 AM, Dave <d...@looktowindward.com> wrote:
> 
> I hate it when people as that question! There are some memory leaks in a 3rd 
> party package. It overrides release to unregister an observer but doesn’t 
> call super. If I call super the leaks go away and all is well. I just want to 
> know where is it documented really, I can’t find it searching the docs.


Look at Apple's Foundation NSObject protocol reference document for the 
-release method. It includes this statement:

"You would only implement this method to define your own reference-counting 
scheme. Such implementations should not invoke the inherited method; that is, 
they should not include a release message to super."

My framework does NOT define its own reference-counting scheme, within the 
meaning of that quotation. Instead, my framework overrides -release for the 
SOLE PURPOSE of unregistering an observer the last time a standard -release is 
called on the given object -- that is, when the separately maintained 
weakRetainCount reaches the specified value. In all other respects, my 
framework relies on the -release method to do what it always does.

Therefore, it IS in fact necessary to include [super release] at the end of the 
override.

-- 

Bill Cheeseman - wjcheese...@comcast.net

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to