ios - NSXMLParser 代码的 EXC_BAD_ACCESS

标签 ios objective-c xml-parsing exc-bad-access nsxmlparser

我已经编写了以下代码来解析 RSS 提要。 但是当它尝试将元素与 @"title"进行比较时,我在 foundCharacter 方法中不断收到 EXC_BAD_ACCESS 。知道我哪里出错了吗?

NSMutableDictionary * item;
NSMutableString * title;
NSMutableString * link;
NSString *element;
NSMutableArray *feeds; 

-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
    element = elementName;
    if ([element isEqualToString:@"item"]) {
        item = [[NSMutableDictionary alloc]init];
        title = [[NSMutableString alloc]init];
        link = [[NSMutableString alloc] init];
    }
}

-(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
    if ([elementName isEqualToString:@"item"]) {
        [item setObject:title forKey:@"title"];
        [item setObject:link forKey:@"link"];
        [feeds addObject:[item copy]];
        NSLog(@"feeds :: %@",feeds);
    }


}

-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
    if ([element isEqualToString:@"title"]) {
        [title appendString:string];`enter code here`
    }else if ([element isEqualToString:@"link"]){
        [link appendString:string];
    }
}

最佳答案

我认为错误在于这一行:

element = elementName;

您必须初始化变量元素。所以写这个:

element = [[NSString alloc] initWithString:elementName];

那么它应该可以工作了。

关于ios - NSXMLParser 代码的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382073/

相关文章:

ios - 为什么 Zombie Instruments 工具中的分配继续增加,而 Allocations Instruments 工具中却没有

iphone - 保存到 CoreData - 添加到顶部

ios - 如何在Swift中从JSON对象删除属性(key:values)

ios - 代码没有进入类方法iOS

c# - 基于各种元素值使用 xpath 搜索 xml

java - 使用 SAX 解析器解析可能重复的嵌套 XML 标签。 java

iphone - 弹出详细 View 后自动取消选择 TableView 单元格?

iphone - 连续旋转 UIImageView

xml2js : how is the output?

iphone - 在快速按下 Xcode 按钮时快速播放声音的最佳方法是什么?