Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 是否强制泛型类型参数为类类型?_Generics_Swift - Fatal编程技术网

Generics 是否强制泛型类型参数为类类型?

Generics 是否强制泛型类型参数为类类型?,generics,swift,Generics,Swift,我试图找出一种方法,当循环中的某些引用保存在集合中时,可以避免保留循环。我的想法是创建一个包装器struct: struct Weak<T> { unowned let value: T init(_ value: T) { self.value = value } } struct弱{ 无主出租价值:T 初始值(u值:T){ 自我价值=价值 } } 这里的问题是:未拥有的< /代码>和弱小/代码>成员必须是类类型(主体):SWIFT:3

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

struct Weak<T> {
    unowned let value: T

    init(_ value: T) {
        self.value = value
    }
}
struct弱{
无主出租价值:T
初始值(u值:T){
自我价值=价值
}
}

这里的问题是:<代码>未拥有的< /代码>和<代码>弱小/代码>成员必须是类类型(<代码>主体):SWIFT:3:17:“未拥有”不能应用于非类类型“t”;考虑添加类绑定< /代码>,但没有合理的超类来要求< <代码> t>代码>从.< /p>继承。 有没有办法强制

T
成为一个类类型而不从特定的其他类继承?

试试:

struct Weak<T:AnyObject>
struct弱

Yep,请阅读泛型部分,了解泛型定义的语法。在iBook中的AnyObject上搜索该协议的更多信息。