知识卡片
ARC引用计数原理
内容
[[值类型与引用类型的本质区别|引用类型]]实例在内存中只存在一份,但可能被多个变量同时 指向;判断这份内存何时能被释放,靠的是给每个实例维护一个引用计数器:每多一个变量引用它, 计数加一;每少一个引用,计数减一;计数归零时系统才真正回收这块内存。ARC(自动引用计数) 把这套计数的增减操作从手写代码转移给编译器自动插入,开发者不必再手动管理。可以类比一座 自动感应人流的图书馆:走廊灯只要馆内还有一个读者就亮着,不关心具体是谁进出、顺序如何, 只看人数是否归零。发散:引用计数的局限性也藏在这个比喻里——如果两个读者互相把对方反锁 在图书馆里出不去,即使馆内早已没有其他人,人数也永远不会归零,这就是循环引用问题的根源。
参考来源
《Swift 4从零到精通iOS开发》第10章《内存管理与异常处理》