On Jul 17, 2011, at 9:32 PM, John Brownie wrote:

> In the document object, I am observing such an event, then creating a handler 
> and calling it. I have handled creation either by explicit allocation such as 
> [[HandlerClass alloc] initWith...] or by writing a class method to create an 
> object like [HandlerClass createHandlerWith...]. I then call the appropriate 
> action method like [handlerObject beginProcesssing...] and return to the 
> event loop. The handler class handles interactions, and releases itself when 
> it is done. This does not result in leaks, but the analyzer warns me that the 
> handler is potentially leaking from the document class.
> 
> So my question is, what model of memory management is appropriate? Should I 
> stick with what I have, where the document object creates the handler and 
> then forgets it, knowing that the handler will clean up after itself when 
> it's done? Or should I have the handler retain itself, and have the document 
> object release it? Or is there another method I haven't thought of?

The way you’re doing it is reasonable, but the analyzer isn’t smart enough to 
tell. If you want to avoid the warnings (which seems like a good idea; it’s 
never good to leave false warnings around) you could change the code so the 
handler’s beginProcessing method retains itself, and the handler releases 
itself when it’s done. Then the code that creates a handler can release it, and 
all the memory management looks kosher to the analyzer. (This is the way other 
asynchronous classes like NSURLConnection work.)

—Jens

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to