@blog.justoneplanet.info

日々勉強

NSNullとnilを判定する

■失敗例1

UITableViewのcellを設定する部分で以下のようなコードを書きクラッシュした。

NSString *tag = (NSString *)[row objectForKey:@"tag"];
[cell.tag setText:tag];
return cell;

■失敗例2

nilの場合があるなと考えて以下のようにする。

NSString *tag = (NSString *)[row objectForKey:@"tag"];
if (tag == nil) {
    [cell.tag setText:@""];
}
else {
    [cell.tag setText:tag];
}
return cell;

残念ながらクラッシュは依然として起こる。

■最終版

tagはNSNullであり以下の判定に修正。

NSString *tag = (NSString *)[row objectForKey:@"tag"];
if (tag == nil || [tag isEqual:[NSNull null]]) {
    [cell.tag setText:@""];
}
else {
    [cell.tag setText:tag];
}
return cell;

参考

NSNullは配列の要素のようなオブジェクトしか許されない所でnilを表すのに用いられる

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment