2016-04-22 68 views
2

我加UITableViewUIViewController作爲一個子視圖,但是當我設置一個斷點到UITableView數據源方法:一個UITableView對象需要初始化三次

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 1; 
} 

我找到斷點命中三次。這是爲什麼?

+0

它只會執行行數。否則,你有沒有聲明numberOfSections委託你給了一些沒有部分。 ? –

+0

你是否在任何地方使用過reloadData? –

+0

@BalajiRamakrishnan我宣佈了1個部分 – windy

回答

0

您提到的方法是數據源方法,與初始化無關。這只是tableview調用的方法來詢問表中有多少行。我不會太在意桌面視圖詢問數據源的次數,表中有多少行。

我假設你已經使用界面構建器創建了你的tableview作爲另一個視圖的子視圖。這是你初始化tableview的時候。所有使用界面構建器創建的對象都將在界面構建器中初始化。 Xcode然後在編譯過程中歸檔這些對象(Apple稱之爲凍幹),並在運行時將這些對象解除存檔。

在取消存檔過程中,使用界面構建器創建的對象與其出口連接,放置在屏幕上等。然後是對象執行對其委託和數據源的調用。這可能會發生一次以上。

希望這會有所幫助。

+0

謝謝,我想知道一些細節 – windy

+0

沒問題,你想知道什麼細節?你正在試圖解決什麼問題? – MacUserT