Ios 如何确定DDXMLElement是否有值?

Ios 如何确定DDXMLElement是否有值?,ios,objective-c,kissxml,Ios,Objective C,Kissxml,我有一个XML Web服务(并且没有机会改变这个)元素可以是空的,但是我看不到使用XML做这件事的明显方法 如果false是,有没有办法防止应用程序崩溃 我正在使用以下代码: if ([[element elementsForName:@"thing"] count] > 0) { id obj = [[element elementsForName:@"thing"] objectAtIndex:0]; if (obj) self.thing = [obj boolVal

我有一个XML Web服务(并且没有机会改变这个)元素可以是空的,但是我看不到使用XML做这件事的明显方法

如果
false
,有没有办法防止应用程序崩溃

我正在使用以下代码:

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;
}

同样的事情你做了两次。在我看来,它与我编写的代码完全相同。第2行等于第1行,因此无需检查两次,如果删除第2行和第3行,则得到我的代码。在这种情况下,对nil对象调用
boolValue
将返回FALSE。这段代码在哪里崩溃?它在布尔值上崩溃,而不是零。它是一个DDXMLElement,在lldb控制台中读取
。我只是想知道是否有办法检查它是否有值。它说,
不能在ddxmlement上调用boolValue
我不认为boolValue是ddxmlement或DDXMLNode上的一种方法,在调用string对象上的boolValue之前,可以使用stringValue并检查nil?我将在周一尝试。好主意!