my のプロパティの値を設定しています。NSManagedObject
これらの値はNSDictionary
、JSON ファイルから適切にシリアル化されたものから取得されています。私の問題は、値が の場合[NSNull null]
、プロパティに直接割り当てることができないことです。
fight.winnerID = [dict objectForKey:@"winner"];
これはNSInvalidArgumentException
"winnerID"; desired type = NSString; given type = NSNull; value = <null>;
代わりに値を簡単に確認して[NSNull null]
割り当てることができます。nil
fight.winnerID = [dict objectForKey:@"winner"] == [NSNull null] ? nil : [dict objectForKey:@"winner"];
しかし、これはエレガントではなく、設定するプロパティがたくさんあると面倒だと思います。
NSNumber
また、プロパティを扱う場合、これは難しくなります。
fight.round = [NSNumber numberWithUnsignedInteger:[[dict valueForKey:@"round"] unsignedIntegerValue]]
現在は次のNSInvalidArgumentException
とおりです。
[NSNull unsignedIntegerValue]: unrecognized selector sent to instance
この場合、値を[dict valueForKey:@"round"]
作成する前に処理する必要があります。NSUInteger
そして、1行のソリューションはなくなりました。
@try @catch ブロックを作成しようとしましたが、最初の値がキャッチされるとすぐに @try ブロック全体をジャンプし、次のプロパティは無視されます。
[NSNull null]
これを処理する、またはおそらくこれを完全に異なるが簡単にするより良い方法はありますか?