property声明中weak的runtime实现机制

    之前看的面试题,只是简单的property关键字weak的作用是什么?最常见的用法又是什么?答案呢,千篇一律。

    比如:作用就是不造成强引用,不影响指针所指向对象的生命周期。

                用来声明delegate。

    其实,本质是:

    runtime对注册的类进行管理,将weak作为value,用weak指向的对象的内存地址作为key,存入hash表。当weak指向对象的retainCount为0时,对象会被放入待销毁的autoreleasePool,当pool中对象接收到pop以及release的消息时,会以对象的内存地址作为key,在hash表中搜索,以该key存储的weak,然后进行删除操作。

    

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容