Я пытаюсь перенести делегат SRWebSocket на наблюдаемый. Это мой RxSocketManagerDelegateProxy.swift:Невозможно использовать функцию proxyForObject в DelegateProxyType (rxSwift)
class RxSocketManagerDelegateProxy: DelegateProxy, DelegateProxyType{
static func currentDelegateFor(object: AnyObject) -> AnyObject?{
let socket: SRWebSocket = object as! SRWebSocket
return socket.delegate
}
static func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) {
let socket: SRWebSocket = object as! SRWebSocket
socket.delegate = delegate as? SRWebSocketDelegate
}
}
extension SRWebSocket{
public var rx_delegate: DelegateProxy{
return DelegateProxyType.proxyForObject(self)
}
// ...
}
Проблема заключается в функции proxyForObject. Он не компилируется, как указано выше. Я получаю предупреждение «Статический член proxyForObject» не может использоваться в экземпляре типа «DelegateProxyType.Protocol».
Когда я пытаюсь использовать proxyForObjectFunction как это (хотя это не рекомендуется):
public var rx_delegate: DelegateProxy{
return proxyForObject(RxSocketManagerDelegateProxy.self, self)
}
Я получаю сообщение «не удалось утверждение:: Файл/Users/Agentum/Документы/Xcode/Телеметрия/стручки/RxCocoa/RxCocoa/Общие/DelegateProxyType.swift».
Как использовать функцию proxyForObject() для правильной миграции делегата?
Благодарим вас очень! – Marina