Использование в качестве конкретного типа, соответствующего протоколу AnyObject, не поддерживается

Я использую 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&nbsp;имеетvalue&nbsp;участник объявлен какweak, такT&nbsp;как ожидается, будет объектом. Но я также заявляюMyDelegate&nbsp;какAnyObject, тоже. Как обойти это?