内存循环引用解决方案
2017-02-16 16:20:44 0 举报
为你推荐
查看更多
内存循环引用是指两个或多个对象相互引用,导致它们无法被垃圾回收机制释放。解决这个问题的方法有很多种,其中一种是使用弱引用(WeakReference)。弱引用不会阻止垃圾回收器回收所引用的对象,因此可以用于解决内存循环引用的问题。另一种方法是使用缓存管理器(CacheManager),它可以自动管理缓存对象的生命周期,避免内存泄漏和循环引用的问题。此外,还可以通过手动管理对象引用的方式来解决内存循环引用的问题,例如将不再使用的对象设置为null,以便垃圾回收器能够回收它们。总之,解决内存循环引用问题需要根据具体情况选择合适的方法。
作者其他创作
大纲/内容
否
删除该关联对象
获取关联对象值
创建异步消息处理线程
获取关联底层函数的IMP地址objc_setAssociatedObjectobjc_removeAssociatedObjectsobjc_getAssociatedObject
绑定iOS底层符号表系统
判断该值是否为空
获取关联对象的HASH存储表
判断是否找到关联MAP
重定向该3个函数调用方式
是
使用 DISGUISE(object) 作为 key 寻找对应的关联对象Map
获取所有对象
启动程序
在函数中注入线程安全的强引用标识符号ASSOCIATION_SAFE
获取到has_assoc
分析对象的isa_t结构体
对关联对象进行retain操作
表明没有关联对象
循环
获取Object-C对象
判断是否是强引用关系
更新关联对象
删除该对象
创建临时关联对象
加载fishhook框架
将对象消息入对象栈
判断当前对象是否有关联对象
通过ASSOCIATION_SAFE对象判断哪些是强引用关系
保存该关联对象
0 条评论
回复 删除
下一页