Re: How to safely delete a WebView delegate object?
Re: How to safely delete a WebView delegate object?
- Subject: Re: How to safely delete a WebView delegate object?
- From: Quincey Morris <email@hidden>
- Date: Wed, 15 Apr 2015 00:44:36 +0000
On Apr 14, 2015, at 17:01 , Juanjo Conti <email@hidden> wrote:
>
> If I click the button too many times, fast enough, my app crash with a
> EXEC_ error and if I enable zombie objects I get that it crash when one of
> this two messages is been send:
>
> [MyDelegate respondsToSelector] or [MyDelegate retain]
>
> Does this smell? Any tip I should have in mind for situations like this?
It smells of a memory management error. Delegates are, in most of the modern Cocoa classes, unretained objects, and your array (with its strong references to your delegates) is what’s keeping them alive. When you remove the array element, the strong reference disappears, and your delegate can get deallocated, leading to such crashes.
You should make sure you’re setting the various delegate properties in the WebView to nil before removing the array element. (It’s too late to do it after, unless you’ve taken a local strong reference to the delegate before removing.)
At least, this is what it sounds like.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden