2016-10-20 3 views
0

同じ質問が含まれている他のスレッドを見ても、私は今まで何があったのか、それがなぜこのように言われているのか分かりません。UITableViewDataSourceとHomeModelの両方がViewControllerに準拠していません

私のコードは次のようになります。

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, HomeModelProtocal { 

@IBOutlet weak var listTableView: UITableView! 



var feedItems: NSArray = NSArray() 
var selectedLocation : Parsexml = Parsexml() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    //set delegates and initialize homeModel 

    self.listTableView.delegate = self 
    self.listTableView.dataSource = self 

    let homeModel = HomeModel() 
    homeModel.delegate = self 
    homeModel.downloadItems() 

    func itemsDownloaded(items: NSArray) { 


    } 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     // Return the number of feed items 
     return feedItems.count 

    } 

    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { 

     let cellIdentifier: String = "BasicCell" 
     let myCell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)! 

     let item: Parsexml = feedItems[indexPath.row] as! Parsexml 

     myCell.textLabel!.text = item.title 

     return myCell 
    } 

私が提案したコードが、運を使用しようとしました。スウィフト3

numberOfRowsInSection

+0

Swift 2とSwift 3のコードが混ざっています。どのバージョンを使用していますか?質問のバージョンを言及するか、正しいタグを設定することは、少なくとも役に立つでしょう。 – vadian

+0

ああ、私は原因のスイフト3を使用:-) - しかし、実際には、私はGoogleでチュートリアルを使用しています。だから、それは私が変化していることを示唆していません、めったにそれを見つけること –

+0

あなたのスウィフトバージョンに一致するチュートリアルを探します。 – vadian

答えて

0

は次のとおりです。

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

cellForRowAt indexPath次のとおりです。

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

あなたは簡単に自分自身を見つけることができます全体のメソッドをコメントアウトし、最初の文字を再入力tableVコード補完が示唆するものを参照してください。

スウィフト2でも、cellForRowAtIndexPathの署名が間違っています。すべてのパラメータはオプションではない値です。

+0

ありがとうございます。私はまだエラーが発生します タイプ 'ViewController'がプロトコル 'UITableViewDataSource'に従っていません –

+0

問題ナビゲータ(⌘4)で、エラーの横にある三角形をクリックします。どのメソッドが欠落しているかを示します。メソッドを正しくコピーして貼り付けましたか? 'NSIndexPath'ではなく、アンダースコアと' IndexPath'を考えてください。 – vadian

+0

html「スタブを追加しますか?」と言うのは、tableView(_:numberOfRowsInSection :)とタイプ(UITableView、Int) - > Int 'の両方です。 そして(UITableView、IndexPath) - > UITableViewCell ' どういう意味ですか? –

関連する問題