I have a property declared like this:
@property (nonatomic, retain) NSMutableArray *pricingLevels;
And I assign it like this:
Yep, you have a memory leak. Assigning to self.propertyName for a retained property automatically performs a retain. You either need to release the object after assigning (slightly more efficient to just do release
after assigning vs using autorelease
), or you need to assign the retained object to the instance field (sans self.
) not the property name, AND, for this latter case, you need to be sure that the instance field was previously nil (ie, only do the direct assignment in initialization logic).
(And don't forget your dealloc
method.)
(This all has nothing to do with the fact that the object happens to be an NSMutableArray.)