我是Swift的新手,在Apple文档中我看到了:
只要有效的引用在其生命周期中的某个时刻变为> nil,就应使用弱引用。
我不应该仅通过使用“?”来实现吗?对于可选类型?
换一种说法:
执行weak和?重叠?
如果我不按optionalwhen 定义变量,编译器会抱怨weak,因此我觉得可以删除它而忘了它,但是我只是误解了它。
谢谢!
不,弱点和可选部分不相同,但是两者之间存在一些相互作用。
可选只是表示变量可以是nil,您可以自己分配nil,也可以通过其他方式将其变为nil。
该weak关键字与内存管理的事情。如果变量不是 weak(即强),则表示ARC对分配的实例拥有强大的引用。因此,即使没有其他引用,该实例仍将保留在内存中,因为该变量仍“持有它”。
当a变量是时weak,它没有对其的强大引用。这意味着当没有其他强引用时,实例将被释放,并且变量将nil自动变为。这也解释了为什么弱变量必须是可选的。
您链接到的文档实际上很清楚地解释了这一点。
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |