ヒレガス本 課題8-2

ヒレガス本第四版の課題8-2を読んで、この課題は10分も掛からないだろうと見積もりコーディングを始めるたが、デバッグに1時間もかかった。

ミスをした箇所は以下の通り。

  • NSButtonからtarget/actionの設定を忘れていた
凡ミスだが、何度もボタンを押してしまった。最初に接続忘れを疑うべきだった。
  • プロトコルのスペルミス

NSTableViewDataSourceプロトコルの一部をスペルミスしていた。実装がoptionalだと警告が発生しないのでミスを発見しにくい。

対策は、NSTableView.hから該当するプロトコルメソッドをCopy&Pasteするのが一番だと思う。

  • [NSTableView reloadData]の呼出し忘れ
arrayへの追加削除の後には、reloadDataしないと画面がアップデートしない。
  • IB上でidentifierの設定忘れ
tableCulumのidentifierを見て表示する内容を選んでいるのに、identifierが空だった。 identifierが空の時にassertを発生させた方が良いかも。
  • tableCulumのidentifierをデータのKVCの名前に一致させるべきだったのを別の名前を作ってしまった。
わざわざ変換ようのディクショナリを作ってから気がついた。CoreDataが出てくるまでは定型文だったのだがすっかり忘れていた。