私は、Swift 3で簡単なタイトルとメッセージテーブルのセルを取得しようと試みました。これは、動作するために得られた最も遠くかつ最も近いものです。私はThread 1: Signal SIGABRT
私のアプリケーションデリゲートファイルの最初の行にエラーが発生し、libc++abi.dylib: terminating with uncaught exception of type NSException
は私のコンソール出力にあります。Swift 3カスタムセルでエラーが発生する
セルクラス。アウトレットは、私のストーリーボードファイルのプロトタイプセルに接続されています。
import UIKit
class MyTableCell: UITableViewCell {
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
}
コードがテーブルに
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MyTableCell
if cell == nil {
let cell:MyTableCell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! MyTableCell
cell.textLabel?.text = posts[indexPath.row].title
cell.detailTextLabel?.text = posts[indexPath.row].message
return cell
} else {
cell.label1.text = posts[indexPath.row].title
cell.label2.text = posts[indexPath.row].message
}
return cell
}
をロードする注:私は、オンライン表をロードするために上記のコードを発見しました。これは私のより簡単なコードが正しく動作していなかったことです。
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:MyTableCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell") as! MyTableCell
cell.label1.text = posts[indexPath.row].title
cell.label2.text = posts[indexPath.row].message
return cell
}
'1).'あなたのコードは、エラーのある行に停止するように例外ブレークポイントを追加します。 '2).'例外ログから該当する行を追加します(つまり、アプリの停止原因となった特定のエラー)。 '3).'おそらく、新しいバージョンの' dequeueReusableCell'が必要です: 'cell :: MyTableCell = self.tableView.dequeueReusableCellWithIdentifier(" Cell "、forIndexPath:indexPath)を! MyTableCell'は非ゼロであることが保証されています。 '4).'ストーリーボードに正しいセル識別子を設定していること、そしてカスタムセルのクラスが正しいことを確認してください。 –
問題を解決できましたか? –
@RoboticCatは、最新のバージョンではありません。クイックフィックスでは、 'cell:MyTableCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell"、:indexPath)を!私の元の質問にあったMyTableCellです。 –