当我weak在Swift中声明变量时,有时会从Xcode收到错误消息:
weak
“弱”仅可应用于类和类绑定协议类型
我只是想知道为什么关键字weak只能应用于类和类绑定的协议类型?背后的原因是什么?
weak是引用类型的限定符(与structs和内置值类型等值类型相反)。
struct
引用类型使您可以对同一对象有多个引用。当最后一个强引用停止引用该对象时,该对象将被释放(弱引用不计算在内)。
另一方面,值类型是按副本分配的。引用计数不适用,因此weak修饰符对它们没有意义。