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

  • Home
  • SEARCH
  • 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 6726135
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T09:53:26+00:00 2026-05-26T09:53:26+00:00

Xcode Analyze complained that I incorrectly decremented ref count at the line marked this

  • 0

Xcode Analyze complained that I incorrectly decremented ref count at the line marked “this line”. it seems a bit strange, since it was not obvious that that line decrements the ref count.

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    UIImage * image = [[UIImage alloc] initWithData:receivedData];
    if (image == nil) {
        image = [UIImage imageNamed:@"null.bmp"];
    }
    self.itemImage.image = image; //this line
    self.promotion.image = image; 
    [image release];
}
  • 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-26T09:53:27+00:00Added an answer on May 26, 2026 at 9:53 am

    This is a mildly tricky thing; it’s understandable that it is causing confusion. The two paths here result in image holding objects with different ownership statuses, and thus different reference counts.

    Going through the if results in image holding an object that your code doesn’t own.

    UIImage * image = [[UIImage alloc] initWithData:receivedData];
    // If |initWithData:| succeeds, the object in |image| is owned, because you
    // called |alloc| to create it.
    if (image == nil) {
        image = [UIImage imageNamed:@"null.bmp"];
        // This object is _not_ owned by your code and you must not send
        // |release| to it.
    }
    // ... the setter lines are irrelevant to the reference count of |image|.
    
    [image release];
    // This is only okay if |initWithData:| succeeded and you have ownership
    // of |image|.
    

    I think that the analyzer is indicating the wrong line, in the same way the compiler will complain about a missing semicolon five lines later.

    The way to solve this may be to retain the image you get from imageNamed: You can’t just not send release, because you do own image in one case, and you need to properly relinquish that ownership. I’d also suggest putting a comment in there about sending retain so you remember eight months later why you did it.

    Better than that, as suggested below by the inimitable Bavarious, and as I think you yourself already figured out, would be to autorelease the alloc‘d image and remove the later release line.

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

Sidebar

Related Questions

Xcode Analyze complained that I incorrectly decremented reference count for username. Here is the
XCode's OpenGL template seems to be cheating to solve this stretched viewport problem I've
When I Analyze my project in Xcode, I get a few strange errors. All
When I do an analyze in xcode, I get this memory leak on the
If I analyze my program with the XCode 4 tool, the following line leads
I've never considered this a problem, until I ran the Xcode Analyze feature. Say
When I build and analyze my project on XCode, I obtain a 'warning' on
I just upgraded to Xcode 3.2 and am using the Build and Analyze feature
Using the build and analyze of XCode I saw i have a memory leak
With the latest releases of XCode that contain static analyzers, some of my objects

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.