直到5分钟前,我确信我对目标参考计算的理解是非常好的,但是当我开始检查保留对象时,我非常惊讶地看到我所看到的东西。
例如,我的View Control有一个UITView:
.h 文件
@interface RegularChatViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
UITableView *_tableView;
}
@property (nonatomic, retain) IBOutlet UITableView *tableView;
.m 文件
@synthesize tableView = _tableView;
- (void)loadView
{
_tableView = [[UITableView alloc] init]; // STEP ONE
NSLog(@"tableView retain count: %d",[_tableView retainCount]);
self.tableView.frame = CGRectMake(0, 0, 320, tableHeight); // STEP TWO
NSLog(@"tableView retain count: %d",[_tableView retainCount]);
[self.view addSubview:self.tableView]; // STEP THREE
NSLog(@"tableView retain count: %d",[_tableView retainCount]);
}
令我惊讶的是,
tableView retain count: 1
tableView retain count: 2
tableView retain count: 3
增加1,加上 allec
我还知道,STEP 3HREE 将保留数增加1,加上 addSubview
But whats going on in STEP TWO ??? why did it increase the retain count???
is there something to do with ARC??