2009/07/23

iPhoneアプリ作成:テーブルビューセルのサンプルアプリが落ちる

SoftBank Creativeの「はじめてのiPhoneプログラミング」のサンプルアプリを作成しながら悩んだことのメモです。

いろいろ悩んでます。


P.223「UITableViewCellのカスタムサブクラス」から始まるサンプルの作成で、Cellsアプリが実行時に不正に終了してしまい困りました。

ブレークしながら実行すると、以前悩んだときと同じように"EXC_BAD_INSTRUCTION"と表示されます。


この本のサイトから取得したサンプルソースを参照したところ、iPhone SDK 2.1以上を使用している場合に変えなければならない所があるみたいです。
Jeff and Dave's Excellent iPhone Support Page


- tableView:cellForRowAtIndexPathメソッドにおいて、本の文中では次のようにあります。
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = [nib objectAtIndex:1];


これの[nib objectAtIndex:1]としている箇所を次のように[nib objectAtIndex:0]にしなければならないようです。

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = [nib objectAtIndex:0];



サンプルソースでは、コメントで次のように記述されています。
The behavior here changed between SDK 2.0 and 2.1. In 2.1+, loadNibNamed:owner:options: does not include an entry in the array for File's Owner. In 2.0, it does.




難しいです。

0 件のコメント: