【发布时间】:2015-11-07 02:19:05
【问题描述】:
我有一个类XMLUtil,它包含一些xml 解析功能。该类有一个通用参数T。该类还充当NSXMLParserDelegate 到NSXMLParser 的委托人。
class XMLUtil<T>: NSObject, NSXMLParserDelegate{
...
...
init(){
parser = NSXMLParser(data: NSData)
parser.delegate = self
parser.parse()
}
...
...
//delegate method implementations
}
问题:
当我的 XMLUtil 类是泛型类时,委托方法永远不会被调用。但是,当我在没有泛型参数的情况下实现 XMLUtil 类时,它们会这样做
这两个问题似乎性质相似
Swift Generic class as delegate
NSURLConnection Delegate Methods Not Called In Generic Class
文档中有什么可以解释这种行为的吗?这是故意的还是一个错误?
【问题讨论】:
-
是的,您引用的链接可以告诉您答案。泛型类不能是 Cocoa 类的委托。这不是一个错误......这是一个尚未实现的功能。我不知道它是否会被实施。这可能是不可能的。但这是当前的限制。