强制泛型类型参数是类类型?

时间:2014-06-08 01:42:21

标签: generics swift

我试图找出一种避免保留周期的方法,当循环中的某些引用保存在集合中时。我的想法是创建一个包装器struct

struct Weak<T> {
    unowned let value: T

    init(_ value: T) {
        self.value = value
    }
}

这里的问题是unownedweak成员必须属于班级类型(main.swift:3:17: 'unowned' cannot be applied to non-class type 'T'; consider adding a class bound),但我没有合理的超类要求{ {1}}继承自。

有没有办法强制T成为类类型而不继承特定的其他类?

1 个答案:

答案 0 :(得分:9)

尝试:

struct Weak<T:AnyObject>