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