読者です 読者をやめる 読者になる 読者になる

UITableViewの初期化

iOSのテーブルビューを使いたいので勉強しようとしたら、自分の環境だと詰まったのでメモ。
ここを見ながら勉強してた。
http://kurrytran.blogspot.jp/2011/10/ios-5-storyboard-and.html


動かそうとしてみると、ビルドは通るけどSIGABRTが出てアプリが落ちる…
しかもSIGABRTの原因がログに出てくれない…
(見方をわかってないだけかも)
のでブレークポイント置いて、セルに文字設定する前に落ちてるのを発見。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//以下略

何でテンプレートのままなのに落ちるんだろうと思ったら、viewDidLoadでCellIdentifierが一致する再利用可能なセルのオブジェクトを登録しとかないといけないんだそうで。
これ文字にすると動きわかってないの丸わかりで恥ずかしいな。
このブログを参考にさせてもらいました。
http://dev.classmethod.jp/smartphone/iphone/ios6-uitableview/

ついでにテーブルビューの使い方参考にしてたページのやり方はiOS5.xのやり方で、6.0以降は再利用可能なセルの使い方が違うことにも気づけたので助かりました。


あとこの辺を使ってSIGABRTの対処とか例外処理とかちゃんと勉強しないと…
http://blog.9wick.com/2012/04/sigabrt/