当这些代码行运行+ iPhone时会发生什么

时间:2010-10-07 14:08:48

标签: iphone

VisitWebsiteVC *visitWebSite = [[[VisitWebsiteVC alloc] initWithNibName:@"VisitWebsiteVC" bundle:nil] retain];
            [self.navigationController pushViewController:visitWebSite animated:YES];
            [visitWebSite dealloc];

由于[visitWebSite dealloc]会发生什么。

1 个答案:

答案 0 :(得分:4)

首先,你永远不应该调用dealloc方法(除了dealloc中的[super dealloc])。

您的代码应抛出BAD_ACCESS异常

(保留计数) Alloc = 1 保留+1 = 2 按+1 = 3 Dealloc = 0

但是,导航控制器仍在使用VisitWebsiteVC实例

你应该做的是:

VisitWebsiteVC *visitWebSite = [[VisitWebsiteVC alloc] initWithNibName:@"VisitWebsiteVC" bundle:nil];
            [self.navigationController pushViewController:visitWebSite animated:YES];
            [visitWebSite release];