如何在条件与JSON响应进行比较时进行NULL比较?

时间:2014-05-29 13:17:05

标签: ios objective-c json

我试图对来自Web服务的数据(JSON RESPONSE)进行比较,并在Objective C类I上比较以下代码。

我必须提一下,在viewdidload上我将next_page_url设置为null,否则我会收到错误。改变如下所示:

next_page_url = @"null";

这是回复:

{
    "count": 16, 
    "next": "http://api.domain.com/user-search/?page=2&subject=a", 
    "previous": null, 
    "results": [
        {
            "name": "Guillermo Davila", 
            "nick": "gdavila", 
            "avatar_s": "http://domain.com/images/image_9994449333.jpg", 
            "user_rate": "$5/h", 
            "id": 3, 
            "subjects": "Web Development and 1 other subject", 
            "bio": "I am a programmer"
        }]
}

这是Controller.m

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{


    if (next_page_url == (id)[NSNull null]) {

        NSLog(@"NEXT_PAGE_URL: IS NULL URL-->%@",next_page_url);
        return myObject.count;


    } else {

        NSLog(@"NEXT_PAGE_URL: NOT NULL +1 NEXT_PAGE_URL-->%@",next_page_url);
        return myObject.count+1;


    }


}

它的作用是,加载时默认显示加载指示器,因为它总是说next_page_url不为空。

3 个答案:

答案 0 :(得分:0)

替换此next_page_url = @“null”;对此:next_page_url = null;

答案 1 :(得分:0)

不要将对象与==进行比较 它比较了指针地址,它们可能不一样。 另外,您应该了解NULLNilnil[NSNull null]之间的区别:

在C中使用

NULL,不要在Objective-c中使用它 Nil是一个空类 nil表示没有实例,指向任何内容的指针 [NSNull null]用于表示空对象集合。您无法将nil插入NSArrayNSDictionary,因此您可以使用它。

所以如果你想检查nil,如果确实有任何实例

if (next_page_url)  {

如果您需要检查是否有[NSNull null]对象使用

  

if([next_page_url isEqual:[NSNull null]]){

此代码错误:

 if (next_page_url == (id)[NSNull null]) {

答案 2 :(得分:0)

您可以像这样检查...并更改您的密钥而不是“next_page_url”

if ((NSNull*)next_page_url != [NSNull null] && next_page_url != NULL)
     NSLog(@"This value is not contain with nulll value");
else
     NSLog(@"This value is contain with nulll value");

我希望它会对你有所帮助。