У меня есть класс XMLUtil
, который обертывает некоторые функции синтаксического анализа xml. Класс имеет один общий параметр T
. Класс также действует как NSXMLParserDelegate
для делегата NSXMLParser
.Установить общий класс в качестве делегата в swift
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. Это не ошибка ... это функция, которая еще не реализована. Я не знаю, будет ли это когда-либо реализовываться. Это может быть невозможно. Но это ограничение тока. –