如何确定DDXMLElement是否有值?

时间:2013-05-24 14:14:10

标签: ios objective-c kissxml

我有一个XML WebService(并且没有机会改变这个)元素可以是空的但是我没有看到使用KissXML做这个的明显方法。

如果<thing>false</thing><thing/>,是否有办法阻止应用崩溃?

我正在使用此代码:

if ([[element elementsForName:@"thing"] count] > 0) {
    id obj = [[element elementsForName:@"thing"] objectAtIndex:0];
    if (obj) self.thing = [obj boolValue];
}

1 个答案:

答案 0 :(得分:2)

始终检查这些对象,尤其是因为xml来自应用程序外部并且可能具有不可预测的格式。您正在调用objectAtIndex:,但您不知道有多少个对象。

if ([[element elementsForName:@"thing"] count] > 0) {

   NSArray *elements = [element elementsForName:@"thing"];

   id obj = [elements objectAtIndex:0];

   NSString *stringValue = [obj stringValue];

   BOOL boolValue = FALSE;

   if(stringValue) {
     boolValue = [stringValue boolValue];
   }
   self.thing = boolValue;
}