Я использую Swift 2 и использую WeakContainer как способ хранения набора слабых объектов, как NSHashTable.weakObjectsHashTable()
struct WeakContainer<T: AnyObject> {
weak var value: T?
}
public protocol MyDelegate : AnyObject {
}
Затем в моем ViewController я объявляю
public var delegates = [WeakContainer<MyDelegate>]
Но это ошибка
Использование MyDelegate в качестве конкретного типа, соответствующего протоколу AnyObject, не поддерживается
Я вижу, что ошибка состоит в том, что WeakContainer
имеет член value
, объявленный как weak
, поэтому ожидается, что T
будет объектом. Но я также объявляю MyDelegate
как AnyObject
. Как обойти это?