【问题标题】:Swift - implementing NSXMLParserDelegateSwift - 实现 NSXMLParserDelegate
【发布时间】:2014-06-13 10:37:56
【问题描述】:

我正在尝试让我的一个类实现 NSXmlProtocolDelegate,但编译器失败,表明该类不符合 NSObjectProtocol。

NSObjectProtocol 中的所有功能是否都需要实现,或者可以避免吗?

class GeoRssParser : NSXMLParserDelegate
{
    func parserDidStartDocument(parser : NSXMLParser)
    {

    }
}

在这一点上没什么可看的 - 在编译器开始失败之前我已经做到了这一点。

【问题讨论】:

  • 您的代码在哪里? :)

标签: swift


【解决方案1】:

是的,至少任何没有被标记为@optional 的东西。实现这一点的最简单方法是简单地将您的类设为 NSObject 的子类,它已经符合 NSObjectProtocol,并实现了它的所有方法。

class GeoRssParser: NSObject, NSXMLParserDelegate {
    func parserDidStartDocument(parser : NSXMLParser) {
        // stuff
    }
}

【讨论】:

  • 谢谢 - 我没有意识到你需要明确地从 NSObject 继承。
  • @Lee 好吧,你不一定必须这样做,你可以直接指定你的类符合 NSObjectProtocol,但是你必须自己实现所有方法。这种方式只会为您节省所有工作。
  • 是不是因为 NSXMLParserDelegate 的定义是这样的?protocol NSXMLParserDelegate : NSObjectProtocol {
  • @Lee 没错。如果一种协议符合另一种协议,则方法实现要求会被传递下去。
猜你喜欢
  • 1970-01-01
  • 2015-03-30
  • 2011-03-06
  • 1970-01-01
  • 2018-02-07
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
相关资源
最近更新 更多