Я использую 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. Как обойти это?