On 24.08.2016 at 22:14 Ben Kennedy wrote:

>> On 24 Aug 2016, at 1:04 pm, Andreas Falkenhahn <andr...@falkenhahn.com> 
>> wrote:

>> I have read Apple's memory management guide on retain/release and
>> I think I've basically got it, but there's just one thing that
>> I'm not confident about and that is "setXXX" methods which accept an
>> NSObject parameter and I don't know how I can know whether the
>> "setXXX" retains or not.

> Why do you think you need to know? 

If it retains, I could just do the following:

    [textField setFormatter:formatter];
    [formatter release];

And I wouldn't have to worry about "formatter" any longer. If it doesn't retain,
the above isn't possible. 

Another example: "addSubview" retains, so I can just do:

    [[win contentView] addSubview:button];
    [button release];

And I'm done with "button." That's much more convenient than having to
keep "button" for much longer...

> 
> That's the concern of the API
> you're calling. If it needs to retain the object you're passing it,
> then it will. If it doesn't, it won't.

I still think I should know this so that I know when I should say
"release" (see above)

> The legacy delegate stuff that you cited calls out the fact that
> they don't because it is contrary to normal expectations, and thus
> requires explicit concern by the caller.

So are you saying that the standard for setXXX methods is retain?
And if a setXXX method doesn't retain, then it's explicitly mentioned
in the doc?

-- 
Best regards,
 Andreas Falkenhahn                            mailto:andr...@falkenhahn.com

_______________________________________________

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