Google-code-prettify

2009/07/23

iPhoneアプリ作成:UITableViewCell で「warning: 'setText:' is deprecated」

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

ちびちびとやってます。


iPhone SDK 3.0 を使用したビルド環境でテーブルビューを使うサンプルアプリを作成すると、警告が出てしまうところがあります。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

〜省略〜

NSUInteger row = [indexPath row];
cell.text = [listData objectAtIndex:row];

上記のコードのうち、
cell.text = [listData objectAtIndex:row];
で次のような警告が出ます。
warning: 'setText:' is deprecated



UITableViewCellクラスのドキュメントを見ると下記のようにあります。
text

The text of the cell. (Deprecated. Use the textLabel and detailTextLabel properties instead.)


ネットで調べたところiPhone SDK 3.0で"Deprecated"になったようです。


どのように変更するのがいいのかAppleのiPhone Reference Libraryで検索してみたところ、次のようにしているサンプルコードがありました。
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"CellWithSwitch"];

〜 省略 〜

cell.textLabel.text = @"Sound Effects";


これにならい次のように変更したところ、警告が出なくなったようです。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

〜省略〜

NSUInteger row = [indexPath row];
// cell.text = [listData objectAtIndex:row];
cell.textLabel.text = [listData objectAtIndex:row];



ビルド後に実行してみても意図した通りの動きをするようなので、大丈夫なんでしょう。
多分。

2 件のコメント:

匿名 さんのコメント...

参考になりました。どうも

通りすがり さんのコメント...

同じく参考になりました。
ありがとうございました(^-^)