Swift弱引用实现细节

Swift对象引用分为强引用和弱引用,通过引用计数来管理。当强引用计数为0时对象被deinit,释放掉对象保持的资源,但是对象本身的指针并没有被系统回收,只有当弱引用计数也为0时才被回收。
当然,我们写程序并不能感知弱引用计数器的存在。当我们访问一个弱引用对象时,系统会检查该对象的强引用计数是否为0(是否被deinit),如果为0,弱引用计数则被减1,同时返回nil给访问者,直至弱引用计数也为0时,对象被回收。

你可能感兴趣的:(Swift弱引用实现细节)