2017-05-26 84 views
0

我已經開始了我的第一個應用程序,並且我希望應用程序具有作爲待辦事項列表的視圖,但是,我得到類型'ThirdViewController'不符合協議UITableViewDataSource作爲我的代碼中的錯誤。我已經看了一個類似的線程,但沒有找到解決辦法有類型'ThirdViewController'不符合協議UITableViewDataSource

import UIKit 

class ThirdViewController: UIViewController, UITableViewDataSource, UITableViewDelegate 
{ 
    var list = ["Math Homework", "English Project", "Bio Quiz"] 

    @IBOutlet weak var myTableView: UITableView! 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() 
    { 
     super.didReceiveMemoryWarning() 
    } 


    public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    { 
     return list.count 
    } 

    public func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell 
    { 
     let cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "cell") 
     cell.textLabel?.text = list[indexPath.row] 

     return cell 
    } 
} 

回答

1

由於蘋果開發者文檔中指定,則需要以下方法:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

你,而不是使用了這些:

public func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell 
public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

從兩種方法刪除public,它應該工作。另外,在tableView:之前加_

參考:

https://developer.apple.com/reference/uikit/uitableviewdatasource

編輯: 我描述的是斯威夫特3.如果您使用的是雨燕2.3的方法,這些應該是你的方法:

func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell 
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

幾乎與第一次使用的相同,但沒有public

+0

清除了錯誤,但現在我得到了「使用未聲明的類型'IndexPath'。我該如何解決這個問題? –

+0

您在哪一行收到錯誤?另外,'indexPath'應該以小寫字母'i '。 – vitormm

+0

func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath) - > UITableViewCell - 在你的兩個建議編輯中我得到了同樣的錯誤 –

0

實施UITableViewDataSource和的UITableViewDelegate所需的協議的方法。

你缺少;

func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 
+0

試過了,仍然顯示相同的錯誤。 –

相關問題