2016-10-05 34 views
3

我迅速3換算,代碼工作的應用特點fine.For改變我已經實現表視圖numberOfSections方法沒有得到所謂的swift3

numberOfSections

但它從來沒有所謂。我不明白爲什麼?我的控制器是從storyboard添加的UIViewController和TableView。 TableView數據源連接到當前視圖控制器。我得到其他所謂的像

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

數據源的方法,但從來沒有所謂

func numberOfSections(in tableView: UITableView) -> Int{ 
     return 3 
} 
+0

您是否添加了'override'關鍵字,例如:'override func numberOfSections ...'? –

+0

MyClass是UIViewController的子類,我將表視圖的數據源設置爲我的類,所以我不需要重寫@MichaelDautermann –

+0

正如@MichaelDautermann提到的那樣...檢查是否有「覆蓋」。我想念Objective-C。 –

回答

2

你說,你建立的tableView的數據源,但只是爲了確保嘗試在你的代碼重新設置一次像這樣:

override func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.delegate = self 
    tableView.dataSource = self 
} 
+0

你的答案似乎是正確的,但我不知道是什麼原因。我正在檢查可能是什麼原因或蘋果改變了它的任何東西! –

+0

看起來像你沒有正確地設置故事板中tableView和ViewController的委託和數據源的連接,否則你不需要實現上面的代碼。 – Wilson

2

而不是做它喜歡:

func numberOfSections(in tableView: UITableView) -> Int 

做這樣的:

func numberOfSectionsInTableView(_ tableView: UITableView) -> Int 
+0

swift 3不想要最後一種情況( – djdance

1

我正好遇到了同樣的問題。將UICollectionViewDelegate,UICollectionViewDataSource附加到我的類中,立即修復了問題,編譯器正確地告訴我什麼我已經丟失,等等。

好像Swift中的UICollectionView預先檢查協議的一致性而不是方法-基礎。例如,我的「numberOfSections」的實現非常好,但沒有符合性聲明就沒有被調用。

相關問題