@Strongify,@Weakify主要是在block中使用.

因为block一般都在对象内部声明.. 如果在block内部使用了当前对象的属性,就会造成循环引用(block拥有当前对象的地址,而当前对象拥有block的地址),而引起内存泄露,block和当前对象都无法释放.

@weakify(self) 将当前对象声明为weak.. 这样block内部引用当前对象,就不会造成引用计数+1可以破解循环引用

@strongify(self) 相当于声明一个局部的strong对象,等于当前对象.可以保证block调用的时候,内部的对象不会释放

大概用例:

__weak __typeof(self)weakSelf = self;
block = ^(){__strong __typeof(weakSelf)strongSelf = weakSelf;// strongSelf.property
};

详细讲解文章:

点击跳转

转载于:https://www.cnblogs.com/ficow/p/5200667.html

iOS __strong __weak @Strongify @Weakify相关推荐

  1. 对copy/strong/weak/__weak/__strong/assign的使用场景总结总结

    ARC在编译期间,根据Objective-C对象的存活周期,在适当的位置添加retain和release代码.从概念上讲,ARC与手动引用计数内存管理遵循同样的内存管理规则,但是ARC也无法防止循环强 ...

  2. iOS:消除项目中警告

    引言: 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能执行之类的警告. 有代码洁癖的孩子们很想消除他们, 今天就让我们来一次Fuck 警告!! 首先学会基本的语句: ...

  3. iOS内存管理知识点

    ###PART1: ARC的修饰符 ARC主要提供了4种修饰符,他们分别是: __strong __weak __autoreleasing __unsafe_unretained ####__str ...

  4. iOS开发ARC内存管理技术要点

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  5. iOS开发ARC内存管理

    本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更不是垃 ...

  6. iOS 下ARC的内存管理机制

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  7. 【iOS】—— ARC学习

    ARC 文章目录 ARC 内存管理的思考方式 自己生成的对象自己持有 非自己生成的对象,自己也能持有 不再需要自己持有的对象时释放 无法释放非自己持有的对象 所有权修饰符 在什么时候会用到weak和s ...

  8. RAC-ReactiveObjC使用解析介绍——iOS

    RAC指的就是Reactivecocoa,用于iOS开发和OS开发,是git上面的一个开源框架,可以使用pod直接导入.RAC讲究的是万物皆信号,可替代:代理.通知.Block.KVO以及事件绑定.O ...

  9. iOS消除对应的警告!

    iOS消除对应的警告! 字数7989  阅读12383  评论10  喜欢29 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能执行之类的警告. 有代码洁癖的孩子们很想 ...

最新文章

  1. (0017)iOS 开发之Mac上安装Eclipse、创建java后台程序访问本地数据库
  2. bug4 导入新工程时报 Target runtime com.genuitec.runtime.generic.jee60 is not defined
  3. 锐捷交换机配置snmp版本_【交换机】交换机如何配置SNMP(网络管理协议)
  4. MetaSploit攻击实例讲解------攻击445端口漏洞(kali linux 2016.2(rolling))(详细)
  5. 谋定政策经信研究扶持-万祥军:对话李玉庭跨界电商重整
  6. c语言第四版课后答案第三章3.4,算法与数据结构C语言版课后习题答案(机械工业出版社)第3,4章 习题参考答案...
  7. C# .net core 使用自定义的WebProxy
  8. CW3 Clarifications
  9. Prompt Learning | 一文带你概览Prompt工作新进展
  10. 《涂抹Oracle—三思笔记之一步一步学Oracle》看书笔记(第一章)
  11. 电力网络故障的计算机算法,电力系统故障分析的计算机算法.pdf
  12. FOC电机控制之SVPWM原理与实现
  13. 速达数据库服务器密码修改,速达,管家婆SQL Server帐套密码PJ方法 -电脑资料
  14. 考研没过线也能录取?13种特殊录取方式!
  15. 一步解决桌面文件需要管理员权限才能删除问题
  16. 教程:BootToGecko系统虚机与实机开发环境搭建及FirefoxOS设备使用和开发网站推荐;
  17. 20、Theos越狱调试Wallet
  18. SEO优化:什么是SEO链轮?站群与博客群的优劣比较!
  19. 【网络篇】第三篇——源端口号和目的端口号
  20. 仿宋GB213字体加粗后笔画发虚

热门文章

  1. 适合转HTML5大前端的5类人!有你吗?
  2. php内嵌网页加载js,javascript 窗口加载蒙板 内嵌网页内容_javascript技巧
  3. linux 驱动器发送信号,Linux设备驱动并发控制详解(自旋锁,信号量)
  4. 可疑文件_鉴定文件是不是病毒木马的可靠方法 | 免费快速精准
  5. python中的条件判断稀硫酸_大学mooc2020用Python玩转数据期末考试查题公众号答案...
  6. C语言排序方法-----二分插入排序
  7. Java中多态、抽象类和接口
  8. python线程卡死问题解决
  9. Qt子窗口QMidSubwindow全屏出现的问题总结
  10. 后台取值页面显示——Vue.js