gpt4 book ai didi

iphone - Objective-c - XMLReader 无法正常工作

转载 作者:行者123 更新时间:2023-11-29 13:39:11 24 4
gpt4 key购买 nike

我对 XMLReader 类 ( https://github.com/Insert-Witty-Name/XML-to-NSDictionary ) 有疑问。

当我解析这个文档时,它工作得很好

<webservices>
<title>Photos</title>
<item>
<name>test</name>
</item>
<item>
<name>test2</name>
</item>
</webservices>

程序显示:

  webservices = {
item = (
{
name= "test1.";
},
{
name= "test2";
}
);
title = Photos;
};
}

但是当我有一个项目时,它就不起作用了。我不是 Item 的 NSarray,而是直接带有节点“名称”的 NSDictionnary。

<webservices>
<title>Photos</title>
<item>
<name>test</name>
</item>
</webservices>

程序显示:

  webservices = {
item = {
name= "test";
}
title = Photos;
};
}

一个想法?

非常感谢:)

最佳答案

试试这个

XMLReader.m

+(NSArray*)enforceArray:(id)payload{
if ([payload isKindOfClass:[NSArray class]]){
return payload;
}else{
if ([payload isKindOfClass:[NSNull class]] || isEmpty(payload)) return [NSArray array];
return [NSArray arrayWithObject:payload];
}
}



//common.h
static inline BOOL isEmpty(id thing) {
return thing == nil
|| [thing isKindOfClass:[NSNull class]]
|| [thing respondsToSelector:@selector(isEqualToString)]
&& [(NSString*)thing isEqualToString:@"(null)"]
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}


NSMutableArray *results = [[NSMutableArray arrayWithArray:[XMLReader enforceArray:[[xmlDictionary objectForKey:@"notifications"] objectForKey:@"notification"]]];

总有一天我会深入研究核心类,从根本上解决这个问题。同时这里有创可贴。

关于iphone - Objective-c - XMLReader 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9635424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com