2010-10-07 71 views
0
VisitWebsiteVC *visitWebSite = [[[VisitWebsiteVC alloc] initWithNibName:@"VisitWebsiteVC" bundle:nil] retain]; 
      [self.navigationController pushViewController:visitWebSite animated:YES]; 
      [visitWebSite dealloc]; 

由於[visitWebSite dealloc]會發生什麼情況。當這些代碼行運行時發生了什麼+ iPhone

+4

永遠永遠永遠永遠不會永遠調用dealloc – 2010-10-07 14:12:02

+2

「由於[visitWebSite dealloc]會發生什麼。」沒什麼好的。 – 2010-10-07 14:15:34

回答

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];