現時点では、API は値を持たないパラメーターに対して返さNULLれます。int
たとえば、ユーザー API では、パラメーターの 1 つが次のようになります。
{
...
"user_id":NULL
...
}
0これは有効な応答である可能性があるため、これはあり得ないことを理解していますが、 s をポインターにすることはできないNULLため、ポインターを持つとあらゆる種類の問題が発生します。intNULL
私の考えでは、これらの値は完全に除外する必要があると考えていました-その後、より適切と思われる値を返しnilます(目的の c など[dictionary objectForKey:@"user_id"] == nil)。null ポインターをチェックしていません (間違っているようです。int との間に違いがあります)。およびポインター)。
それ以外の場合、回避策NSNumberは、ポインターを必要とするオブジェクトにすることであり、したがってNULL. 次に、次のようなことができます。
NSNumber *userID = [dictionary objectForKey:@"user_id"];
if(userID != [NSNull null]){
// its not null
}
しかし、私にはこれは根本的に間違っていると感じており、NSNumberドキュメントには次のように書かれています。
数値オブジェクトは、作成時の型を必ずしも保持しないことに注意してください。
これもまた汚く感じます。
(繰り返しますNSDecimalNumberが、文字列で s を初期化しています...なぜこれが私を悩ませるのかわかりません...)。