目标C-XMLReader错误计算数组



在Objective C计数JSON对象方面需要帮助。

我正在使用github.com/amarcadet/XMLReader/来读取我的XML。

如果我的JSON返回一个以上的对象,我的代码会完美地计算这些对象。但是,如果我的JSON只返回一个对象,它就会计算错误。

这是我的JSON,有两个对象:

QuestionTotal = {
Question = ({
    Description = {
        text = "bla bla";
    };
    id = {
        text = "123";
    };
    ord = {
        text = 1;
    };
}, {
    Description = {
        text = "blu blu";
    };
    id = {
        text = "456";
    };
    ord = {
        text = 2;
    };
});

};

我的目标c代码:

NSDictionary *xmlDictionary;
NSMutableArray *questions = [[[[[[[self.xmlDictionary objectForKey:@"Envelope"] objectForKey:@"Body"] objectForKey:@"GetInterviewResponse"] objectForKey:@"GetInterviewResult"] objectForKey:@"Obj"] objectForKey:@"QuestionsTotal"] objectForKey:@"Question"];

NSLog(@"问题总数:%lu",(无符号长)[问题计数]);

上面的代码返回日志:问题总数:2

如果JSON是:

QuestionTotal = {
Question = {
    Description = {
        text = "bla bla";
    };
    id = {
        text = "123";
    };
    ord = {
        text = 1;
    };
};

};

代码返回日志:问题总数:3这是错误的。

刚刚发现我需要插入以下代码才能使XMLReader工作:

if (![list isKindOfClass:[NSArray class]])
{
    // if 'list' isn't an array, we create a new array containing our object
    list = [NSArray arrayWithObject:list];
}

当数组只有一个对象时,一切都很好。

谢谢大家。

最新更新