Re: ARC dealloc best pratice
Re: ARC dealloc best pratice
- Subject: Re: ARC dealloc best pratice
- From: David Duncan <email@hidden>
- Date: Fri, 06 Feb 2015 13:09:17 -0800
> On Feb 6, 2015, at 12:46 PM, Jens Alfke <email@hidden> wrote:
>
>
>> On Feb 6, 2015, at 11:55 AM, Jonathan Mitchell <email@hidden> wrote:
>>
>> The tableView.delegate is not a zeroing weak ref - in the lingo of ARC it is unsafe_unretained I believe
>> self can be deallocated leaving tableView.delegate as a dangling pointer.
>
> This is still a weak reference, it's just unsafe (non-zeroing.) You're right that these need to be cleaned up manually.
>
> Come to think of it, I'm surprised that AppKit delegates are still unsafe-unretained. Why haven't these been converted to safe weak references yet?
Converting an unowned reference to a zeroing-weak reference can cause compatibility issues with existing applications that are not prepared for the additional semantics required by zeroing-weak references. While this isn’t a deal breaker for the future, there still needs to be a compatibility path for older applications, and the entire code base needs to be audited to ensure correct operation (either by conversion to ARC or ensuring that access goes through the proper gating functions).
>
>> The problem is that there is, I believe, no way to accurately determine whether a or b is true in any particular instance!
>
> It depends on the class. For example, NSURLConnection has a well-defined order in which it sends delegate messages, so it's possible to know when it's not going to send any more messages. But yeah, in a window's view hierarchy it's extremely unpredictable so it's important to zero out delegate references.
>
> —Jens
> _______________________________________________
>
> 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
--
David Duncan
_______________________________________________
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