Thanks for the solution guys - I fully understand now! Also thanks for the advice and the super quick replies.

C

On 7 Nov 2008, at 12:17, Roland King <[EMAIL PROTECTED]> wrote:

the iPhone documentation - I guess because it's recent, tends to use properties quite a lot. You'll even find in the class description documentation that things are documented as properties instead of setXXX and XXX methods (and it tells you which are readwrite and readonly etc.).

In this case whatever self is has declared viewController as a readwrite/retain property, so self.viewController = aViewController is the same as [ self setViewController:aViewController ] and perhaps you're happier with that syntax and realizing that the implementation of setViewController would retain the object and the dealloc() will eventually release it.

take a look at the MoveMeAppDelegate.h file, you'll see that property defined as I said as readwrite, retain and it's synthesized in the .m file and released in dealloc().

I started off using the property syntax but I stopped again and I'm long-winded and use the [ self setXXX: ] form instead because I find for me it's easier to remember that I'm really calling a method on an object. Your mileage may vary. Even if you define things as properties you don't HAVE to use the 'dot' syntax if the other way makes it clearer to you.



On Nov 7, 2008, at 7:59 PM, Calum Robertson wrote:

Hi,

Below is a snippet of code from the "Creating an iPhone Application" document from the iPhone DevCenter. I'm not clear as to why this works. My understanding is that when [UIViewController alloc] is executed, the retain count is 1 and then when [aViewController release] is called, the retain count reduces to zero. Does self.viewController not then reference deallocated memory? I thought I had got the hang of retain / release but this snippet confused me...

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
  // Set up the view controller
  UIViewController *aViewController = [[UIViewController alloc]
initWithNibName:@"MoveMeView" bundle:[NSBundle mainBundle]];
  self.viewController = aViewController;
  [aViewController release];
  // Add the view controller's view as a subview of the window
  UIView *controllersView = [viewController view];
  [window addSubview:controllersView];
  [window makeKeyAndVisible];
}

C
_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/rols%40rols.org

This email sent to [EMAIL PROTECTED]

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to