我有一个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];
}

最佳答案

始终检查这些对象,尤其是因为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;
}

关于ios - 如何找出DDXMLElement是否具有值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16737052/

10-13 04:11