我试图为我的应用程序编写一个小的RSS解析器,我有一个XML解析器类,我试图实现一个委托,所以我的RSS类可以在解析完成时被告知。但我有一些问题。
所以我有我的代表:
protocol MyXmlDelegate
{
func onComplete ()
}
然后在我的XML解析器类中,我引用了它:
var someDelegate: MyXmlDelegate?
我在需要时调用委托函数:
public func parserDidEndDocument(parser: NSXMLParser) {
println("parsing finished")
if someDelegate == nil {
println ("Delegate nil bro")
}
else
{
someDelegate!.onComplete()
}
}
然后我的RSS类实现了委托:
class RSSFeed : NSObject, MyXmlDelegate
该类设置解析器'委托自己:
init (feedURL url: String)
{
super.init()
parser = XMLParser(contentsOfURL: NSURL (string: url)!)!
parser!.someDelegate = self
}
rss类实现了委托函数:
func onComplete() {
println ("on complete...")
}
现在,当我运行应用程序时,解析器完成并打印: "解析完成", "委托nil bro"
那么为什么我的代表没有? 我错过了明显的东西吗?