objective-c - NSXMLParser 不会在 iOS 4.3 中解析,但在 5.0 中会解析

标签 objective-c ios ios4 ios-simulator nsxmlparser

我有一个有趣的问题。 我有一个 iPad 应用程序,它必须从 Web 解析一些 XML 数据,它在 5.0 模拟器和设备中都可以正常工作,但在 iOS 4.3 模拟器(实际上我没有任何可用的 4.3 设备)上它不会解析并且[NSXMLParser parse] 方法返回 NO 我已经尝试先下载字符串然后将其转换为 NSData,以及直接下载 NSData 并使用下载的 NSData 初始化解析器。

这是我的代码

-(void)parseWithURLString:(NSString *)urlString{
    NSURL *url = [NSURL URLWithString:urlString];
    if (url != nil) {
        self.parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
        [[self parser] setDelegate:self];
        if([[self parser] parse]){
            NSLog(@"WOOHOO!");
            [TestFlight passCheckpoint:@"XML has been parsed"];
        }
}

已检查 urlString 是正确的。

最佳答案

记录 NSXMLParserparseError 属性。这应该会让您知道您的问题到底是什么。

-(void)parseWithURLString:(NSString *)urlString{
    NSURL *url = [NSURL URLWithString:urlString];
    if (url != nil) {
        self.parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
        [[self parser] setDelegate:self];
        if([[self parser] parse]){
            NSLog(@"Parser completed.");
        }
        else {
            NSLog(@"Parser failed. Error: %@",[self.parser parseError]);
        }
}

或者,您可以实现以下协议(protocol)并记录解析期间发生的错误:

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError

关于objective-c - NSXMLParser 不会在 iOS 4.3 中解析,但在 5.0 中会解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9144542/

相关文章:

iphone - 使用 WSDLToObj-c 工具使用 Obj-C 生成的代码

用 NEON 改进的代码

iphone - 如何从 iPhone sdk 中的标签获取文本字段值?

objective-c - 使用 OpenGL ES 绘制地球

iphone - 将消息发送到 objectForKey 到 NSMutableArray 实例,并且有效!!奇怪的?

ios - NSFetchRequest 返回旧数据,即使数据库已更新

iphone - 关于在 IOS 配置门户中命名应用程序 ID

iphone - CLGeoCoder 导致应用程序崩溃?

IOS 如何更改现有 UI 以使用新的导航 Controller

iphone - 更改 UISegmentedControl 的选定段