I have a following code:
NSLog(@\"%d\", [chart retainCount]);
self.chart = [[BNPieChart alloc] initWithFrame:self.view.frame];
NSLog(@\"%d\", [chart retainC
You chart property defined as retain or copy, so:
self.chart = [[BNPieChart alloc] initWithFrame:self.view.frame];
+1 retain at alloc ([BNPieChart alloc]
)
+1 retain at assignment (self.chart =
)
chart is probably a retained property, that's why you have 2 retainCount. That's why you can see some declaration like that :
BNPieChart *aChart = [[BNPieChart alloc] initWithFrame:self.view.frame];
self.chart = aChart;
[aChart release];
There are 3 possible problems I see:
chart
property, it was synthesized with a retain
attributeretain
in a self-implemented getter methodBNPieChart
or its superclass's designated initializer had a retain
in the initializer.Have you seen the code for BNPieChart
and its non-Cocoa superclasses? If you can, try to post the initializer code.
Due to self in the statement its retain count is 2 as property of the chart is declared as retain
Remove self from the statement
change
self.chart = [[BNPieChart alloc] initWithFrame:self.view.frame];
to
chart = [[BNPieChart alloc] initWithFrame:self.view.frame];
How do you know that the retainCount should be 1? Are you the author of the -setChart: method you are calling? How is it implemented? Why didn't you include it in the post?
Nothing you have posted here is suspicious.