目前,我们的 API 正在返回NULL
任何int
没有值的参数。
例如,在我们的用户 api 中,我们的参数之一如下所示:
{
...
"user_id":NULL
...
}
我知道这不可能0
,因为这可能是一个有效的响应,但是有一个NULL
指针会导致各种问题,因为int
s 不能是NULL
指针。
我的想法是这些值应该完全被忽略 - 然后它们会返回看起来更合适nil
的值(在目标 c 中,例如[dictionary objectForKey:@"user_id"] == nil
),并且不检查空指针(这似乎是错误的,int 之间存在差异和一个指针)。
否则,一种解决方法是将其变成一个NSNumber
需要指针的对象,因此可以是NULL
. 然后我可以做类似的事情:
NSNumber *userID = [dictionary objectForKey:@"user_id"];
if(userID != [NSNull null]){
// its not null
}
但对我来说,这感觉根本上是错误的,NSNumber
文档中说的是:
请注意,数字对象不一定保留创建它们的类型。
这也让我感到肮脏。
(再说一次,我正在NSDecimalNumber
用字符串初始化 s ......所以我不知道为什么这会打扰我......)。