考虑以下代码:
internal weak var someObj: SomeClass? = TheObject.Exists().Somewhere.obj
这看起来是完全合理的。引用是弱的 - 也就是说,我们无法控制someObj的生命周期 - 因此在某个时刻,引用可能会变成nil。即使是SomeClass!
也可以被视为可接受的,只要你意识到可能存在的风险。
internal weak var anotherObj: AnotherClass = aDifferent.Source().ofObjects.obj
编译器甚至不会发出警告。弱引用意味着引用可能指向已被释放的对象。另一方面,非可选的
AnotherClass
类型并不真正允许这样做。这样的代码是否合理?