• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Where or when do I release this object from this action.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Where or when do I release this object from this action.


  • Subject: Re: Where or when do I release this object from this action.
  • From: James Cicenia <email@hidden>
  • Date: Fri, 27 Feb 2009 17:30:22 -0600

Thanks....

That makes a lot of sense.

James


On Feb 27, 2009, at 5:25 PM, Sherm Pendley wrote:

On Fri, Feb 27, 2009 at 5:42 PM, James Cicenia <email@hidden> wrote:
OK -


The question is where do I release that object. If I put the release at the end of the method, nothing will pop into my view.
If I don't release it, it works fine, but then I am worried about a leak.


- (void)monthFruitAction:(id)sender{

MonthPickerViewController *mpvc = [[MonthPickerViewController alloc]initWithNibName:@"MonthPicker" bundle:nil]; <<==== If I autorelase, this method will NOT show my view.

[mpvc setMyParentController:self];
mpvc.view.frame =CGRectMake(19,66,260,258);
[fruitTypeView addSubview:mpvc.view];
[mpvc release] <<==== If I put this in, this method will NOT show my view.
}


So, I am wondering how I am to release this object.

The question is, will you be done with it within the scope of this method? As a general rule, if you want to keep something around for longer than that, you need to make it an instance variable instead of a local variable. That way you'll be able to release it later.

Since you're using dot-syntax, I assume you're using Objective-C 2.0. So, declare a retained property, like this:

    @property (retain) MonthPickerViewController *mpvc;

And, of course, synthesize the accessors for it:

    @synthesize mpvc;

Now, since you've specified retain behavior for the accessors, you'll need to autorelease the controller when you create it - otherwise you'd over-retain it. Since it's no longer a local variable, you'll need to use self.mpvc to access it:

- (void)monthFruitAction:(id)sender {
self.mpvc = [[[MonthPickerViewController alloc] initWithNibName:@"MonthPicker" bundle:nil] autorelease];
[self.mpvc setMyParentController:self];
self.mpvc.view.frame = CGRectMake(19,66,260,258);
[fruitTypeView addSubview:self.mpvc.view];
}


Now, when all is said and done, and you're finished with mpvc, just assign nil to it. With retain symantics for the synthesized accessor methods, doing so should release the old value:

    self.mpvc = nil;

sherm--

--
Cocoa programming in Perl: http://camelbones.sourceforge.net


_______________________________________________

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


References: 
 >Where or when do I release this object from this action. (From: James Cicenia <email@hidden>)
 >Re: Where or when do I release this object from this action. (From: "I. Savant" <email@hidden>)
 >Re: Where or when do I release this object from this action. (From: James Cicenia <email@hidden>)
 >Re: Where or when do I release this object from this action. (From: Shawn Erickson <email@hidden>)
 >Re: Where or when do I release this object from this action. (From: James Cicenia <email@hidden>)
 >Re: Where or when do I release this object from this action. (From: Sherm Pendley <email@hidden>)

  • Prev by Date: Re: The fieldEditor and a focus ring
  • Next by Date: Re: Where or when do I release this object from this action.
  • Previous by thread: Re: Where or when do I release this object from this action.
  • Next by thread: Re: Where or when do I release this object from this action.
  • Index(es):
    • Date
    • Thread