最初に、私の無知を告白します。プロジェクトに取り組んできた数か月で、Objective-C について知っていることはすべて学びました。また、Objective-C が、私が扱った他の言語では単純な問題を複雑にしているように見えることにも、まったくもどかしい思いをしています。この質問は適切なケースです...
最初の実行で、アプリは一連の JSON をダウンロードし、それを使用して CoreData ストアを作成します。Obj-C/JSON ライブラリ (CJSONDeserializer) を使用して、JSON を NSArray に変換します。1 つの CoreData エンティティの JSON ダウンロードには、別のエンティティの関連フィールドを識別する番号 ( ) を含むフィールドがあり、それ以外"show_id":2
の場合は null ( "show_id":null
) を含むフィールドがあります。そのフィールドを処理する際に、次を使用してそれを NSNumber に割り当てます...
NSNumber *shoIndex = [[item objectForKey:typeKey] objectForKey:@"show_id"];
次に、関連するレコードがない場合に無駄な処理を行わないように、関連するレコードを取得してリンクする前に、有効な番号があることを確認しようとします。
尋問shoIndex
中...
NSLog(@"shoIndex: %i, %@, %@", shoIndex, shoIndex, [shoIndex description]);
与える...
shoIndex: 19590600, <null>, <null>
JSON 値はnull
&...
shoIndex: 228300880, 51, 51
それ以外は。
これまでのところ、私が行った唯一の成功したチェックは...
if (![[shoIndex description] isEqualToString:@"<null>"]) {
誰かがより良い方法を提案できますか?
アップデート...
別の見方をすると、値を含むことがあるshoIndex
として割り当てられます。Obj-C には、の内容の型を確認するために使用できる演算子のようなものがありますか?NSNumber
NSString
@"<null>"
isa
shoIndex
TIA、ペドロ。