一、 __weak是弱引用,使用weak修饰引用计数不会增加。被引用的对象会被加入一张weak_table中,对象的地址会被当作key,weak指针的地址(地址的值为所指对象指针的地址)数组当作value。

1.初始化一个weak对象或给对象添加弱引用时会初始化一个weak指针指向对象的地址并创建对应的弱引用表。
2.对象释放时会根据对象的地址从weak_table中获取所有weak指针的地址数组,然后遍历数组把其中的数组置空。然后从表中把这个元素彻底清空并清理对象的记录。

二、使用__block修饰对象在block中不会被强引用,并且对象在block中是可以被改变和重新赋值的。

__block可以修饰对象和基本数据类型,在MRC和ARC中都可以使用。__weak只能在ARC中使用且只能修饰对象,在block中也不能被重新赋值。

__weak与__block的区别相关推荐

  1. __block和__weak修饰符的区别

    block下循环引用的问题 __block本身并不能避免循环引用,避免循环引用需要在block内部把__block修饰的obj置为nil __weak可以避免循环引用,但是其会导致外部对象释放了之后, ...

  2. oc开发之block详解

    2019独角兽企业重金招聘Python工程师标准>>> BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行.标识 ...

  3. (0032) iOS 开发之Block 的基础用法及注意事项1

    该文章参考多篇文章,已记不清,如有问题请联系我. 参考:http://blog.csdn.net/zm_yh/article/details/51469275 Block理解 1. Block执行的代 ...

  4. iOS基础知识(面试必备)

    iOS开发的设计模式 一.代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现. 优势:解耦合 敏捷原则:开放-封闭原则 实例:tableview的 数据源dele ...

  5. 格而知之11:我所理解的内存管理(2)

    6.ARC仍然遵循MRC的内存管理方式,4个基本规则在ARC下仍然是有效的,区别只在于:MRC模式下需要手动键入retain.release等方法来遵循这些规则,ARC环境下则是编译器自动在适当位置插 ...

  6. ajax全局加密,Ajax请求接口加密研究(针对网页前端的接口安全加密机制研究)...

    数据库查询优化-SQL优化 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is ...

  7. iOS基础-高级进阶面试题

    1.OC 语言的基本特点  OC 语言是 C 语言的一个超集,只是在 C 的基础之上加上了面向对象(oop) 的特性; OC 与 Java 语言相同都是单继承,这一点与 C++语言不同(多重继承); ...

  8. iOS程序员面试笔试宝典整理

    大三暑假了,各个公司的招聘都开始了,之前自学iOS都是比较零零散散,没有整体的知识体系,现在暑假在准备面试的时候,借着复习准备面试将之前学习的一些东西都整理出来,做个记录 下面是花了三天的时候阅读某宝 ...

  9. ⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)

    iOS面试题 一共分为笔试题和面试题两部分 笔试题 一共分为10个 总共613题 面试题 一共400题 笔试题 一个10个系列 分别为 ①(语法篇) 共147题 已更新 ②(常识篇) 共72题 已更新 ...

最新文章

  1. github登陆方案
  2. ubuntu下zip文件操作
  3. CCF NOI1113 括号匹配
  4. MFC模态窗口与非模态窗口
  5. 什么叫云服务器_什么叫云计算,云计算是什么,最通俗的解释是这样的
  6. mysql hint 简书_MySQL
  7. android官方wifidemo,Android应用开发:连接指定Wifi的Demo分享
  8. OpenCV+Python实现视频文件裁剪功能
  9. armboot和内核文件系统烧写总结
  10. 【JVM实战】JVM参数调优
  11. ap6212linux驱动下载,AP6212各个版本固件
  12. 吴伯凡-认知方法论-知行合一-建立神经元之间的高带宽连接
  13. 黑群晖的驱动加载与卸载(以USB网卡驱动为例)
  14. css实现点点点效果
  15. 面试题:浏览器事件冒泡、事件捕获
  16. plor 回归的r方_新祥旭2022考研真题高频词汇背诵50天(十三)
  17. Python:实现gnome sortt侏儒排序算法(附完整源码)
  18. 华章IT图书书讯(2011年第6期)
  19. 夜神模拟器(Android7)+BurpSuit配置抓取HTTPS包
  20. ALBB 二叉树中相差最大节点的绝对差值

热门文章

  1. go get 获取被墙依赖包解决方法
  2. FileZilla无法连接到服务器,不安全的服务器,不支持 FTP over TLS的解决方案
  3. 解决vue中对象属性改变视图不更新的问题
  4. React中跨域问题的完美解决方案
  5. eclipse中生成的html存在中文乱码问题的解决方法
  6. jQuery针对多个元素的相同点击事件
  7. .on(#39;click#39;)与.click()之间的区别
  8. MySQL中INDEX,PRIMARY,UNIQUE,FULLTEXT之间的区别?
  9. Happy Number
  10. Java 高级 --- 多线程快速入门