NSNull returns <null> 而不是返回 null
NSNull returns <null> instead of returning null
我正在使用以下代码检查 NSNumber 是否具有 nil 值。所以我将 NSNumber 转换为字符串并检查它的长度是否为 0。如果它是零,我返回 NSNull 否则我返回数字本身。
- (id)NSNullToNilForKey:(NSNumber *)number
{
if ([[number stringValue] length] == 0){
return [NSNull null];
}
return number;
}
我按如下方式调用它,
NSString *bodyString = [NSString stringWithFormat:@"[ \"%@\",{\"session_token\": \"%@\",\"request\": [\"GetAssigneeWiseCompliancesChart\",{\"country_id\": %@,\"business_group_id\": %@,\"legal_entity_id\": %@,\"division_id\": %@,\"unit_id\": %@,\"user_id\": %@}]}]",clientSessionId,clientSessionId,[self NSNullToNilForKey:countryId],[self NSNullToNilForKey:businessGroupId],[self NSNullToNilForKey:legalEntityId],[self NSNullToNilForKey:divId],[self NSNullToNilForKey:unitId], [self NSNullToNilForKey:userId]];
但问题是,尽管正在调用 if 循环。 NSNullToNilForKey 的 if 循环返回的值是 <null>
而不是 null
。我该如何解决这个问题?
您正在从一种格式创建一个字符串,所有参数都是通过获取它们的描述来添加的,您看到的是 NSNull
实例的描述。
你的方法应该明确 return 一个字符串,你应该明确选择你想要的字符串 return。
- (id)NSNullToNilForKey:(NSNumber *)number
{
if ([[number stringValue] length] == 0){
return @"NSNull";
}
return number;
}
试试这个
将类型 anyobject id
更改为 NSNumber *
- (NSNumber *)NSNullToNilForKey:(NSNumber *)number
{
if ([[number stringValue] length] == 0){
return [NSNull null];
}
return number;
}
我正在使用以下代码检查 NSNumber 是否具有 nil 值。所以我将 NSNumber 转换为字符串并检查它的长度是否为 0。如果它是零,我返回 NSNull 否则我返回数字本身。
- (id)NSNullToNilForKey:(NSNumber *)number
{
if ([[number stringValue] length] == 0){
return [NSNull null];
}
return number;
}
我按如下方式调用它,
NSString *bodyString = [NSString stringWithFormat:@"[ \"%@\",{\"session_token\": \"%@\",\"request\": [\"GetAssigneeWiseCompliancesChart\",{\"country_id\": %@,\"business_group_id\": %@,\"legal_entity_id\": %@,\"division_id\": %@,\"unit_id\": %@,\"user_id\": %@}]}]",clientSessionId,clientSessionId,[self NSNullToNilForKey:countryId],[self NSNullToNilForKey:businessGroupId],[self NSNullToNilForKey:legalEntityId],[self NSNullToNilForKey:divId],[self NSNullToNilForKey:unitId], [self NSNullToNilForKey:userId]];
但问题是,尽管正在调用 if 循环。 NSNullToNilForKey 的 if 循环返回的值是 <null>
而不是 null
。我该如何解决这个问题?
您正在从一种格式创建一个字符串,所有参数都是通过获取它们的描述来添加的,您看到的是 NSNull
实例的描述。
你的方法应该明确 return 一个字符串,你应该明确选择你想要的字符串 return。
- (id)NSNullToNilForKey:(NSNumber *)number
{
if ([[number stringValue] length] == 0){
return @"NSNull";
}
return number;
}
试试这个
将类型 anyobject id
更改为 NSNumber *
- (NSNumber *)NSNullToNilForKey:(NSNumber *)number
{
if ([[number stringValue] length] == 0){
return [NSNull null];
}
return number;
}