为什么关键字“weak”只能应用于类和绑定类协议类型?

87
当我在Swift中将变量声明为weak时,有时会从Xcode收到以下错误消息:

'weak' may only be applied to class and class-bound protocol types

或者

'weak' must not be applied to non-class-bound 'SomeProtocol'; consider adding a protocol conformance that has a class bound

我想知道为什么关键字weak只能应用于类和类绑定协议类型?这个要求背后的原因是什么?

9
“weak”仅适用于引用计数,并且只有类被引用计数。 - dan
11个回答

0
  1. weak 不适用于值类型。
  2. weak 只适用于类。

"weak" 可以应用于任何从类或类绑定协议类型继承的内容

  1. 类协议: protocol ViewControllerDelegate : class { func getInformationk(value: String?) }
  2. NSObjectProtocol:

    protocol ViewControllerDelegate : NSObjectProtocol { func getInformation(value: String?) }


你能再解释一下吗? - Dieter Meemken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接