我有一个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/