请考虑下面的代码:请帮我解决iPhone中的谜题?
//CallerClass.h
@interface CallerClass : UITableViewController {
NSMutableArray *dataArray;
}
@property(nonatomic,retain) NSMutableArray *dataArray;
-(void) setData;
//CallerClass.m
@implementation CallerClass
@synthesize dataArray;
-(id)initWithStyle:(UITableViewStyle)style {
if (self = [super initWithStyle:style]) {
[self setData];
}
return self;
}
-(void) setData
{
dataArray = [CalledClass getData];
[dataArray release];
}
//CalledClass.h
@interface CalledClass : NSObject {
}
+(NSMutableArray*) getData;
//CalledClass.m
@implementation CalledClass
+(NSMutableArray*) getData
{
NSMutableArray* tempArray = [[NSMutableArray alloc] init];
return tempArray;
}
我想知道什么是dataArray中的保留计数是tempArray。它是否得到释放。我不想使用autorelease,因为我不知道,直到什么时候我会需要它。所以我想自己发布它。当我分配tempArray时,其保留计数变为1.但是,当我将它分配给实例变量dataArray,其属性为retain时,该数组的保留计数是2还是保持为1.就像释放dataArray一样,它将释放内存。
怎么样self.dataArray的护理= [调用getData]; – rkb 2009-09-28 14:21:59