我正在使用Swift 2,并使用WeakContainer作为一种存储弱对象集合的方式,类似于NSHashTable.weakObjectsHashTable()
struct WeakContainer<T: AnyObject> {
weak var value: T?
}
public protocol MyDelegate : AnyObject {
}
然后在我的视图控制器中,我声明
public var delegates = [WeakContainer<MyDelegate>]
但出现了错误
使用 MyDelegate 作为符合协议 AnyObject 的具体类型是不被支持的
我看到这个错误是因为 WeakContainer
声明了 value
成员为 weak
,所以期望 T
是一个对象。但我也将 MyDelegate
声明为 AnyObject
。如何解决这个问题?
public protocol MyDelegate : class
,但是不起作用。 - onmyway133NSHashTable
不是泛型,我不想要那个。 - onmyway133