我试图找出一种避免保留周期的方法,当循环中的某些引用保存在集合中时。我的想法是创建一个包装器struct
:
struct Weak<T> {
unowned let value: T
init(_ value: T) {
self.value = value
}
}
这里的问题是unowned
和weak
成员必须属于班级类型(main.swift:3:17: 'unowned' cannot be applied to non-class type 'T'; consider adding a class bound
),但我没有合理的超类要求{ {1}}继承自。
有没有办法强制T
成为类类型而不继承特定的其他类?
答案 0 :(得分:9)
尝试:
struct Weak<T:AnyObject>