Question

the xcode analyzer tell me that a method returns an Objective-C object with a +1 retain count: enter image description here

but the self.athletes is an object that I need also outside my function... how can I solve this 'warning? thanks again

the athletes is declared like this:

NSMutableArray *athletes;
@property (nonatomic, retain) IBOutlet NSMutableArray *athletes;
Was it helpful?

Solution

Replace that line with this one:

self.athletes = [NSMutableArray array];

I wrote full explanation here : Memory Management for properties with retain attribute

OTHER TIPS

Since your property is defined with "retain", using the dot notation will result in an extra retain. The return from the [[NSMutableArray alloc] init] has a retain count of 1, and then when you set the property using the setter function generated by the property declaration it will have a retain count of 2.

To fix, either:

self.athletes = [NSMutableArray array]; // Returns an autoreleased object

Or, you could also do this:

athletes = [[NSMutableArray alloc] init]; // Doesn't use the setter generated by the property declaration, so doesn't retain again.

There is a nice way to handle this (and you have already used this pattern while creating UI ).

NSMutableArray *athletesTemp = [[NSMutableArray alloc] init];

self.athletes = athletesTemp;

[athletesTemp release];

Here you don't need to carry the load of an auto release object.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top