■失敗例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を表すのに用いられる