非可选弱引用有意义吗?

3

考虑以下代码:

internal weak var someObj: SomeClass? = TheObject.Exists().Somewhere.obj

这看起来是完全合理的。引用是弱的 - 也就是说,我们无法控制someObj的生命周期 - 因此在某个时刻,引用可能会变成nil。即使是SomeClass!也可以被视为可接受的,只要你意识到可能存在的风险。

internal weak var anotherObj: AnotherClass = aDifferent.Source().ofObjects.obj

编译器甚至不会发出警告。弱引用意味着引用可能指向已被释放的对象。另一方面,非可选的AnotherClass类型并不真正允许这样做。这样的代码是否合理?

编译器报错:"'weak' 变量应该具有可选类型"。 - Mike Pollard
由于某种原因,这在我身上没有发生。我会再试一次。 - BR41N-FCK
1个回答

0
编译器不允许非可选的弱引用。

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