iOS_block内存分析
----------------------MRC情况下Block内存分析----------------------------
1.如果在block中使用全局变量,他为了持有这个变量,会将对应的对象加一
2.使用__block,避免循环引用
3.在block中使用局部变量的时候,会将变量复制一份存放到常量区(可以使用,但是不可以更改)
4.在MRC环境下:block中访问局部对象的时候,会将计数值加一
5.在MRC环境下:__block的作用:(1)修饰局部对象的时候,不会被block加一
                                             (2)使用__block修饰局部变量的时候,可以在block中更改值
6.当Block访问全局变量的时候,为了让全局变量不销毁,将属性对应的对象reatin
7.当Block访问方法的时候,为了保证方法的存在,将对应的对象retain
   
----------------------ARC情况下Block内存分析---------------------------
1.在ARC情况下:__block的作用只有一个:修饰变量的时候,在block中可以修改
2. 在ARC情况下解决循环引用的方式:__weak
3.使用__weak,可以解决循环引用,但是不能访问当前类中属性
4.如果需要改变则可以作如下操作:
    [button addBlockAction:^(UIButton *button) {
        //如果想访问当前类的属性,做如下操作
        __strong SecondViewController *strongThis = weakThis;
//        _index = 30;
        //报错
//        weakThis->_index = 30;
        //解决方式
        strongThis -> _index = ;
        [strongThis test];
        [strongThis.navigationController popViewControllerAnimated:YES];
    }];
iOS_block内存分析的更多相关文章
- iOS app内存分析套路
		
iOS app内存分析套路 Xcode下查看app内存使用情况有2中方法: Navigator导航栏中的Debug navigator中的Memory Instruments 一.Debug navi ...
 - 【Android端 APP 内存分析】使用工具进行APP的内存分析
		
Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...
 - Chrome开发者工具之JavaScript内存分析
		
阅读目录 对象大小(Object sizes) 对象的占用总内存树 支配对象(Dominators) V8介绍 Chrome 任务管理器 通过DevTools Timeline来定位内存问题 内存回收 ...
 - Eclipse CDT Linux下内存分析 补记
		
常用工具汇总 http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/ 常用的内存分析工具 http://en.wikipedia.org/wi ...
 - c中的进制与内存分析
		
一. 进制 1. 什么是进制 l 是一种计数的方式,数值的表示形式 数一下方块的个数 汉字:十一 十进制:11 二进制:1011 八进制:13 l 多种进制:十进制.二进制.八进制.十六进制. ...
 - [转载]JavaScript内存分析
		
https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools/blob/master/md/Performance-Profiling/javasc ...
 - iOS开发——高级篇——内存分析,Instruments
		
一.内存分析 1.静态内存分析(Analyze)不运行程序,直接对代码进行内存分析,查看代码是否有内存泄露优点:分析速度快,并且可以对所有的代码进行内存分析缺点:分析结果不一定准确(没有运行程序,根据 ...
 - 记一次Android内存分析过程
		
前言 上周五的时候,祝峰找到我,反映了Android收银台买单结果页内存飙升的问题.我在自己的机器上也试着重现了一下,发现从支付台-微信支付成功并返回后,进入买单结果页的内存会突然增大,导致GC,如图 ...
 - [原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler
		
[原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler 1 官方网站:http://memprofiler.com/2 下载地址:http://memprofiler. ...
 
随机推荐
- BZOJ 3926 && ZJOI 2015 诸神眷顾的幻想乡 (广义后缀自动机)
			
3926: [Zjoi2015]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MB Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽 ...
 - hdu 确定比赛名次
			
算法:拓扑排序 题意:有一个比赛,现在知道很多队之间的关系:让你去让确定比赛排名: Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,... ...
 - 如何在WebSocket类中访问Session
			
我最近正在做一个基于websocket的webQQ,最后代码会开源带github上,所以过程中我就不贴所有的代码啦~就贴问题的关键. 我在WebSocket里发消息的时候需要用到session,因为在 ...
 - FCKeditor 插件开发 示例
			
(FCKeditor.地址是:http://www.fckeditor.net/.我下载的版本是:2.6.3.)What ?FCKeditor一直是web上编辑器的比较好的一个选择,他是开源的,而且效 ...
 - Spring技术_邮箱注册_激活_获取验证码
			
项目结构 项目中用到的sql: create database hrSystem; use hrSystem; CREATE TABLE `emailverificationcode` ( `id` ...
 - js实现IE/Firefox的收藏功能
			
代码: function addFavorite(el){ var url = window.location.href, title = $('head').find('title').html() ...
 - python安装包问题小结
			
你可能遇到的问题包括:ImportError: No module named sklearn 未安装sklearn包ImportError: DLL load failed: 找不到指定的模块Imp ...
 - 使用Hexo搭建GitPage
			
资料: hexo官方文档:https://hexo.io/zh-cn/docs/ jekyll官方文档:http://jekyll.com.cn/docs/home/ 简介: 使用hexo和jekyl ...
 - replace 全局替换 和 数组去空
			
<script> /*var str = 'a,b,dhhhh,d'; str = str.replace(/h/g,'j'); alert(str);*/ </script> ...
 - DJANGO用户名认证一例
			
现在实例了用户登陆,就自带的功能.. urls.py ~~~~~~~~~~ (r'^login/$', login), (r'^logout/$',logout,{'next_page':'/logi ...