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

Mar*_*eri 5 generics swift

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

struct Weak<T> {
    unowned let value: T

    init(_ value: T) {
        self.value = value
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*rry 9

尝试:

struct Weak<T:AnyObject>
Run Code Online (Sandbox Code Playgroud)