Re: Autorelease Question
Re: Autorelease Question
- Subject: Re: Autorelease Question
- From: DKJ <email@hidden>
- Date: Wed, 19 Nov 2008 15:07:39 -0800
If you've done this:
NSString *str = [NSString string];
then you can simply do this:
return str;
Whoever is getting the returned value should retain it, and then
release it when they're done.
If you'd done this instead:
NSString *str = [[NSString alloc] init];
then you should do this:
return [str autorelease];
Once again, whoever is getting the returned value should retain it,
and then release it when they're done.
In general, if you retain an object, or use a either a "copy" or an
"init..." method to obtain it, you need to release it yourself when
you're done with it.
Otherwise, you can assume that the object will dispose of itself at
some future time. But when this will happen is in practice
unpredictable, which is why you need to retain the object before doing
anything else with it.
dkj
On 19-Nov-08, at 14:37 , Carmen Cerino Jr. wrote:
I am not sure the best way to phrase this question into words, so I
will phrase it using example code.
- (NSString*)foo
{
NSString blah = [NSString string];
.........
//Now do I do:
return blah;
//Or:
return [[blah retain] autorelease]];
}
_______________________________________________
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
=====================
Hatzic Intellectual Software
Victoria BC, Canada
_______________________________________________
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