2016-08-09 8 views
0

私はiOSを初めて使用しています。私は以下のようにcellForRowIndexPathの実装を持っていますregisterNibプロジェクトの破損後にUiTableViewが機能しない

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCellWithIdentifier("ListCell") 
    if cell == nil { 
     let bundle = NSBundle(forClass: self.dynamicType) 
     tableView.registerNib(UINib(nibName: "Cell",bundle : nil), forCellReuseIdentifier : "ListCell") 
     cell = tableView.dequeueReusableCellWithIdentifier("ListCell") 
    } 
    (cell as? Cell)?.label.text = data[indexPath.row].name 
    return cell! 
} 

このコードは最初は動作していました。私は誤ってgitをハードリセットしました。プロジェクトファイルがすべて乱されました。私は他の問題を修正しました。場合によっては、ファイルを再度追加してください。 何らかの理由でこのコードが動作していません。プロジェクト内のファイルCell.xib

エラーが

(cell as? Cell)?.label.text = data[indexPath.row].name 

私はこれをどのように修正すればよいの「宣言されていないタイプの細胞の使用」ではありますか?

ありがとうございます!

答えて

1

まず、あなただけのペン先1時間を登録するので、あなたのviewDidLoadかのtableViewのdidSetにこのコードを配置する必要があります。

あなた cellForRow
tableView.registerNib(UINib(nibName: "Cell",bundle : nil), forCellReuseIdentifier : "ListCell") 

のために、コードを変更:あなたは

var cell: Cell = tableView.dequeueReusableCellWithIdentifier("ListCell") as! Cell 
cell.label.text = data[indexPath.row].name 
return cell 

あなたがあなたのカスタムにデフォルトのUITableViewCellをキャストしていないのでエラーが発生しましたCell

+0

registerNibをviewDidLoadに移動し、Cellにキャストします。しかし、今、行varセル:Cell = tableView.dequeueReusableCellWithIdentifier( "ListCell")as!セルにエラーが表示されます。 '宣言されていないタイプのセル'を使用しています –

+0

カスタムセルを使用していますか?はいの場合はカスタムクラスを作成する必要があります – Tj3n

+0

ありがとう!プロジェクトの破損後にXcodeがファイルの参照を失ったように見えます。それをもう一度追加しました。 –

関連する問題