如何处理Web服务的null响应

时间:2013-07-24 10:23:31

标签: iphone ios web-services

我的应用程序正在使用PHP Web服务。但是某些响应字段为空,我无法处理该空值。

这是我的回复

[
{
ID: 1,
ChapterID: 0,
Code: "FLGSV01",
Number: "0",
Text: "Swedish Flag",
VersionChanged: 1,
LastChange: "Jun 26 2013 12:00:00:000AM",
Type: "img",
info: null
}
]

我在我的字典中解析了这个回复

tmpDictn : {
    ID = 1,
    ChapterID = 1;
    Code = SECH1W;
    ID = 2;
    LastChange = "Jun 26 2012 12:00:00:000AM";
    Number = 001;
    Text = "ett
\n";
    Type = img;
    VersionChanged = 1;
    info = "<null>";
}

现在你看到info的值是Null,如果我尝试用字符串解析它而不是我的字符串<null>但是我只想让它显示空字符串。

我试过这段代码但没有运气

if ([tmpDictn objectForKey:@"info"]!=nil) {
            info = [tmpDictn objectForKey:@"info"];
        }

此代码给出了NSNull

的错误
if ([[tmpDictn objectForKey:@"info"] isEqualToString:@"<null>"]) {
            info = [tmpDictn objectForKey:@"info"];
        }

那我怎么能处理这个空值?

4 个答案:

答案 0 :(得分:1)

[NSNull null]

比较

来自Docs

  

NSNull类定义一个单例对象,用于表示集合对象中的空值(不允许使用nil值)。

if([tmpDictn objectForKey:@"info"] == [NSNull null]) 
{
  info = nil;
}
else
{
  info = [tmpDictn objectForKey:@"info"]
}

答案 1 :(得分:0)

info = [tmpDictn objectForKey:@"info"];
if(info == null)
{
    //Handle null
}

答案 2 :(得分:0)

if ([[tmpDictn objectForKey:@"info"] isKindOfClass:[NSNull class]])
{
    info = [tmpDictn objectForKey:@"info"];
}

答案 3 :(得分:0)

尝试使用[NSNull null]

if ([tmpDictn objectForKey:@"info"]!=[NSNull null]) {
      info = [tmpDictn objectForKey:@"info"];
} else {
      //Handle null value
}