UITableViewControllerの新規実装にハマる | この服が オススメと君に言いたくて 二月四日は Reco.(レコ)記念日

この服が オススメと君に言いたくて 二月四日は Reco.(レコ)記念日

Recorune(レコルネ)、Reco.(レコ)の企画、開発、運営を行うヘッドライン株式会社のCOO兼CTOであるKazumi Yanoのブログです。

こんにちは。

久々にUITableViewControllerを使って、
設定画面系の画面を追加しようとしていたのですよ。

それで、Xcodeのウィザードから
UITableViewControllerを継承する独自のクラスを新規作成すると、
ある程度テンプレートコードが出力されるじゃないですか。

で、以前実装していた頃よりは「なぜここがこう実装されているのか」
というのも理解できるようになったので、
実装のスピードより内容を重視してじっくりコードを実装していたのですが…

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'



なんて言う例外が出てしまいます。
調べてみると、


[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]


を呼び出すと例外が発生して、


[tableView dequeueReusableCellWithIdentifier:CellIdentifier]



を呼び出すと例外が出ないとか。

確かに、昔同じような画面を実装したロジックを見ると、
後者のメソッドシグニチャになっています。
前者のメソッドはiOS6.0以降で追加されたらしいので、
そもそもこのアプリにとってはNGのコードなのですが、
これはXcodeのテンプレート出力にしてやられたということでしょうか?

まだまだ勉強が必要、
ということで、
今週末始めて勉強会なるものに出席してみるつもりです。