久々に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のテンプレート出力にしてやられたということでしょうか?
まだまだ勉強が必要、
ということで、
今週末始めて勉強会なるものに出席してみるつもりです。