欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

iOS之深入解析weak关键字的底层原理

发布时间:2024/5/28 编程问答 58 豆豆
生活随笔 收集整理的这篇文章主要介绍了 iOS之深入解析weak关键字的底层原理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、weak 关键字

  • 在 iOS 开发过程中,会经常使用到一个修饰词 weak,使用场景大家都比较清晰,避免出现对象之间的强强引用而造成对象不能被正常释放最终导致内存泄露的问题。
  • weak 关键字的作用是弱引用,所引用对象的计数器不会加 1,并在引用对象被释放的时候自动被设置为 nil。
  • weak 的常见场景是在 delegate,block,NSTimer 中使用,以避免循环引用所带来的内存泄漏。
  • weak 的用处用一句话可归纳为:弱引用,在对象释放后置为 nil,避免错误的内存访问。用更通俗的话来表述是:weak 可以在不增加对象的引用计数的同时,又使得指针的访问是安全的。

二、weak 的底层分析

① weak 底层入口

  • 当我们使用 weak 修饰属性的时候,它是怎么实现当所引用的对象被废弃的时候,变量置为 nil 的呢?在日常开发中,常见的 weak 的使用如下:
id object = [[NSObject alloc] init];id __weak obj

总结

以上是生活随笔为你收集整理的iOS之深入解析weak关键字的底层原理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。