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

标签 iphone objective-c ios xml xmlreader

我对 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/

相关文章:

iphone - 从 superView 中删除 UIView

objective-c - 使用 Cocoa 的可扩展服务器

ios - HTML 输入 jQuery UI 日期选择器与 iOS 原生日期输入

ios - 在 Xcode 7 beta 中打开时缺少 .dylib 库

iphone - 从 UINavigationController 子屏幕返回时如何维护 UITableView 选定行?

ios - OS X Server + GIT 与 SSH 的集成失败并出现权限被拒绝错误

iphone - UIView ivar 与标记本地 UIView var

ios - 如何在一个 View Controller 中定义 Action 并在任何地方调用它们

objective-c - 操作系统 : Move keyboard focus between textfields and buttons using tab key

ios - 将 Swift 的调用同步到基于 C 的线程不安全库