2013-03-25 96 views
1

我正在維護由其他人開發的應用程序,並且在調試它時遇到了一個奇怪的行爲。從另一個類分配視圖控制器對象時,它將調用viewDidLoad,在viewDidLoad,我作出呼叫,其中我填寫陣列的另一種方法:爲什麼relaodData調用viewDidLoad

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 
     [self fillArray]; 
} 

-(void)fillArray{ 
    arrayProduct = [[NSMutableArray alloc] init]; 
    //fill in the array from server 
    [self.objTableView reloadData];//refresh the table view 
} 

奇怪的行爲是,則執行一次[self.objTableView reloadData];語句, viewDidLoad再次被調用。這是爲什麼發生?提前Thanx。

+0

因爲你正在重新加載你的表在其他功能。一旦它完成了這個功能,它就會再次回到上一個功能來繼續前面的功能。 – 2013-03-25 12:53:17

+0

嗨,我檢查了一下,我沒有重載其他函數中的表。 – Malloc 2013-03-25 12:58:02

+0

通過你的問題,你的意思是你的表視圖重新加載兩次?或者你的斷點來兩次函數' - (void)viewDidLoad'? – 2013-03-25 13:11:47

回答

0

你可以通過使用標誌來解決這個問題。在調用reloadData方法之前聲明變量並使其成立。並在viewDidLoad檢查變量是否爲真然後不要初始化你的數組。

希望這會幫助你。

所有最好的!

+1

真的,這應該是最後的手段。讓'viewDidLoad'調用兩次是不正常的。 – 2013-03-25 15:41:31

+0

然後呢,當你的視圖被卸載以釋放內存 – EralpB 2014-10-21 22:53:18