面试:runtime如何实现weak变量的自动置nil
2020-01-03 本文已影响0人
JEFF009
runtime对注册类的类会进行布局,对于weak对象会放入一个hash表中。用weak指向的对象内存地址作为key,当此对象的引用计数为0的时候会dealloc。假如weak指向的对象内存地址是a,那么就会以a为建,在这个weak表中搜索,找到所有以a为键的weak对象,从而设置为nil。
runtime对注册类的类会进行布局,对于weak对象会放入一个hash表中。用weak指向的对象内存地址作为key,当此对象的引用计数为0的时候会dealloc。假如weak指向的对象内存地址是a,那么就会以a为建,在这个weak表中搜索,找到所有以a为键的weak对象,从而设置为nil。