Re: Outlets / IBOutlet declarations (was Re: Interface Builder & Wiring Objects)
Re: Outlets / IBOutlet declarations (was Re: Interface Builder & Wiring Objects)
- Subject: Re: Outlets / IBOutlet declarations (was Re: Interface Builder & Wiring Objects)
- From: Brian Stern <email@hidden>
- Date: Tue, 18 Nov 2008 13:01:46 -0500
On Nov 18, 2008, at 9:15 AM, Erik Buck wrote:
If you write correct accessors for all outlets, then the retain/
release memory management is entirely handled in one method. the -
set retains the new value and releases the old value.
Any confusion regarding memory management for IB outlets seems to
stem from failure to write the accessors and reliance on syntactic
sugar. Just remember that
@property (nonatomic, retain) IBOutlet UILabel *label;
results in synthesis of the appropriate accessor methods. It does
nothing more than save you some typing and document your intention.
The -set method that results from the above property declaration
retains the new value and releases the old value. The memory
management is therefore all handled in one place just the way it
should be and the way you want.
So what's the problem again ?
OK Erik, I'll bite. What you describe above is correct as far as it
goes. However, when you say all the memory management is handled in
one place, of course it's two. The object has to be released. The
normal place to release objects is in their owner's dealloc method,
and this also applies to outlets.
However, UIViewController has the ability to unload its view outlet in
response to a memory warning. Any subclass should also release its
outlets in response to the memory warning, if the base class releases
its view, but not otherwise. So now there are three places to manage
the memory of these outlets. The problem is that the base class
doesn't always release its view in response to a memory warning and as
far as I can tell the subclass has no clean way of telling if the view
will be released or has been released. That's the problem.
--
Brian Stern
email@hidden
_______________________________________________
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