現時点では、API は値を持たないパラメーターに対して返さNULL
れます。int
たとえば、ユーザー API では、パラメーターの 1 つが次のようになります。
{
...
"user_id":NULL
...
}
0
これは有効な応答である可能性があるため、これはあり得ないことを理解していますが、 s をポインターにすることはできないNULL
ため、ポインターを持つとあらゆる種類の問題が発生します。int
NULL
私の考えでは、これらの値は完全に除外する必要があると考えていました-その後、より適切と思われる値を返し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 を初期化しています...なぜこれが私を悩ませるのかわかりません...)。