Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6917595
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T09:45:01+00:00 2026-05-27T09:45:01+00:00

I was just reading through the boilerplate code for a universal app and I

  • 0

I was just reading through the boilerplate code for a universal app and I saw this:

- (void)dealloc
{
    ...
    [_navigationController release];
    ...
}

and yet also:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...
        self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
    ...
}

I’m not sure I understand the whole underscore thing, but I gather that it’s to protect you from accessing the ivar directly, and instead accessing it through the property (why? I have no idea… but I accept that this is what its for).

However, what I don’t get is that if self.navigationController is autoreleased then surely this will cause issues when _navigationController is released at the end?

Even more confusing is the fact that there is no retain bit in the @property for navigationController.

So as far as I can tell _navigationController accessed through the property navigationController is autoreleased and then directly accessed and release in dealloc (where it could already be autoreleased surely?).

lol, I hope someone can explain what’s going on here! I’m sure the boilerplate code probably isn’t wrong!

Thank you.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T09:45:01+00:00Added an answer on May 27, 2026 at 9:45 am

    Missing from the question are two important statements: @property and @synthesize.

    My best guess is that these are:

    @property (retain, nonatomic) UINavigationController * navigationController;
    

    and

    @synthesize navigationController = _navigationController;
    

    Since the @property specifies retain when the setter is called, “self.navigationController =”, any existing value is released and the new value is retained. Thus an autorelease of the new value is counter acted by the retain in the setter.

    The @synthesize statement says to use _navigationController as the ivar for the property navigationController.

    This is not ARC code.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I was just reading through Learning Python by Mark Lutz and came across this
I was reading through our code base at my company and I saw something
I've just started reading through Core JavaServer Faces, 3rd Ed. and they say this
I was reading through some JMockit examples and found this code: final List<OrderItem> actualItems
I was just reading through the MethodInfo type and came across this type and
I was just reading this thread and it occurred to me that there is
I'm just reading Code Complete by Steve McConell and I'm thinking of an Example
I was just reading up on ROR (haven't dived into it yet), and I
I'm just reading my company's code guidelines and it says to never treat variables
I was just reading through a tutorial and they mentioned that Objects in php

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.