【问题标题】:Setting delegate for NSXMLParser giving error for SIGABRT为 NSXMLParser 设置委托给 SIGABRT 错误
【发布时间】:2013-01-04 14:28:28
【问题描述】:

我正在使用以下代码为 XML Parsing 应用委托

NSXMLParser *nsXMLParse = [[NSXMLParser alloc] initWithData:data];    
XMLParse *parser = [[XMLParse alloc] initXMLParser];//XMLParse is my custom class, where i used the NSXMLParser protocol 
[nsXMLParse setDelegate:(id <NSXMLParserDelegate>)parser];

但这不能正常工作。虽然它在这里没有给出任何错误,但它在编译时给出“信号 SIGABRT”错误。所以请帮忙。

我的 XML 是:

 <?xml version="1.0" encoding="UTF-8"?>
    <Users>
      <User name="Some One" id="a@b.com" pass="123"/>
    </Users>

【问题讨论】:

    标签: objective-c cocoa delegates nsxmlparser sigabrt


    【解决方案1】:

    如果 XMLParse 类实现了 NSXMLParserDelegate 协议,则不需要强制转换为 id。

    【讨论】:

    • 我正在使用自动参考。那么这是主要原因吗?以及如何检查变量是否超出范围?
    • 方法中声明的变量在方法结束时超出范围。我为你添加了一些示例代码。
    • ARC 有问题吗?
    • 您的类 XMLParse 可能无法正确实现 NSXMLParserDelegate 协议。
    • 现在我得到了确切的解决方案。除了 NSXMLParser 协议函数定义之外,一切都是正确的。感谢所有特别果味的 Geek,查看协议定义。
    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多