Ios “什么意思?”&书信电报;空>&引用;

Ios “什么意思?”&书信电报;空>&引用;,ios,xcode,variables,null,Ios,Xcode,Variables,Null,在我的应用程序中,我获取一些在线数据,并需要对其进行解析。 有时,变量视图中会显示一个值作为 (_NSCFSTring *) @"<null>" 在这种情况下采取行动。这感觉很糟糕,但它奏效了。 现在,我正在iOS7中的一台旧设备上进行测试,这就不那么宽容了:它在那条线上崩溃了 所以,我试过了 [myString isKindOfClass:[NSNull class]]; 但这似乎并不适用 所以,基本上,我在这里缺乏知识,我希望你们中的一位能够解释这一切 谢谢 @“是将[NSN

在我的应用程序中,我获取一些在线数据,并需要对其进行解析。 有时,变量视图中会显示一个值作为

(_NSCFSTring *) @"<null>"
在这种情况下采取行动。这感觉很糟糕,但它奏效了。 现在,我正在iOS7中的一台旧设备上进行测试,这就不那么宽容了:它在那条线上崩溃了

所以,我试过了

[myString isKindOfClass:[NSNull class]];
但这似乎并不适用

所以,基本上,我在这里缺乏知识,我希望你们中的一位能够解释这一切

谢谢

@“
是将
[NSNull null]
转换为
NSString
的结果,例如使用:

id value = [NSNull null];
NSString *stringValue = [value description];
请注意,
stringValue
是一个字符串,因此条件
[myString isKindOfClass:[NSNull class]]
将为false

在将值转换为
NSString
之前,必须先检查
NSNull

典型的解决方案之一是将
NSNull
转换为
nil
,例如,在
NSDictionary
上声明一个类别方法:

- (id)betterObjectForKey:(NSString *)key {
   id value = [self objectForKey:key];

   if (value == [NSNull null]) {
      return nil;
   }

   return value;
}

然后使用
betterObjectForKey:
而不是
objectForKey:
。就我个人而言,在解析服务器数据时,我使用变量来检查值的类型(例如
NSNumber
NSString
)。

好的,谢谢。这回答了我的问题(实际上,这是json数据)。在这个阶段,如果我决定不首先检查json空值,将使用什么样的防水条件?
- (id)betterObjectForKey:(NSString *)key {
   id value = [self objectForKey:key];

   if (value == [NSNull null]) {
      return nil;
   }

   return value;
}