ios block 内存管理时使用注意
    XMGStudent *stu = [[XMGStudent alloc] init];
    __weak XMGStudent *weakStu = stu;
      stu.block = ^{
        NSLog(@"begin - block");
        XMGStudent *strongStu = weakStu;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [strongStu study];
        });
    };
    stu.block();
    /*
     1.默认情况下, block是放在栈里面的
     2.一旦block进行了copy操作, block的内存就会放在堆里面
     3.堆里面的block(被copy过的block)有以下现象
     1> block内部如果通过外面声明的强引用来使用某个对象, 那么block内部会自动额外产生一个强引用指向所使用的对象
     2> block内部如果通过外面声明的弱引用来使用某个对象, 那么block内部会自动额外产生一个弱引用指向所使用的对象
     */
    NSLog(@"----over---");
ios block 内存管理时使用注意的更多相关文章
- iOS Block 内存管理的探讨
		
在很多情况下Block是造成程序循环引用内存泄漏的元凶.下面我们就讲解一下block对内存管理的影响.在讲解之前.希望大家对block有一定的了解.如果大家还不是太清楚block的实现原理.希望大家可 ...
 - iOS的内存管理和引用计数规则、Block的用法以及三种形式(stack、malloc、global)
		
学习内容 iOS的内存管理和引用计数规则 内存管理的思考方式 自己生成的对象自己持有 非自己生成的对象自己也能持有 自己持有的对象不需要时释放 非自己持有的对象不能释放 ARC有效时,id类型和对象类 ...
 - 理解 iOS 的内存管理
		
远古时代的故事 那些经历过手工管理内存(MRC)时代的人们,一定对 iOS 开发中的内存管理记忆犹新.那个时候大约是 2010 年,国内 iOS 开发刚刚兴起,tinyfool 大叔的大名已经如雷贯耳 ...
 - iOS ARC内存管理
		
iOS的内存管理机制,只要是iOS开发者,不管多长的时间经验,都能说出来一点,但是要深入的理解.还是不简单的.随着ARC(自动管理内存)的流行.iOS开发者告别了手动管理内存的复杂工作.但是自动管理内 ...
 - iOS之内存管理(ARC)
		
iOS的内存管理,相信大家都不陌生,之前是使用的MRC,由开发人员手动来管理内存,后来使用了ARC,来由系统管理内存.本文主要讲讲Autorelease,Core Foundation对象在内存管理方 ...
 - 说说iOS与内存管理(上)
		
http://www.cocoachina.com/ios/20150625/12234.html 说起内存管理,看似老生常谈,而真正掌握内存管理的核心其实并不简单.ARC/MRR以及“谁分配谁就负责 ...
 - iOS的block内存管理
		
初始情况下: block本身.__block修饰的变量以及在block内部使用的变量都是在栈里的. __block修饰的变量的地址会作为实参传入block块内部(暂时先这么理解,实际比较复杂).blo ...
 - iOS - OC 内存管理
		
1.OC 基本内存管理模型 1.1 自动垃圾收集 在 OC 2.0 中,有一种称为垃圾收集的内存管理形式.通过垃圾收集,系统能够自动监测对象是否拥有其他的对象,当程序执行需要空间的时候,不再被引用的对 ...
 - IOS ARC内存管理,提高效率避免内存泄露
		
本文转载至 http://blog.csdn.net/allison162004/article/details/38756263 Cocoa内存管理机制 (1)当你使用new.alloc.copy方 ...
 
随机推荐
- BPI-M1P(全志A20)刷Android启动卡之后启动的过程
			
http://blog.csdn.net/wb4916/article/details/78031511BPI-M1P(全志A20)刷Android启动卡之后启动的过程 BPI-M1P(全志A20)刷 ...
 - LR接口测试---基于http协议之get/post
			
get请求代码: //=====================get interface======================== 以http状态码方式: //获取返回的HTTP状态码判断请求 ...
 - 关于百度地图导航AndroidSDK的初始化问题
			
使用百度地图有一段时间了,导航是一个一直困扰我的问题.今天刚发现百度地图的导航SDK并不是对Android6.0版本不兼容.而是对某一部分手机不兼容,准确的说是对X64或X86的cpu不兼容.下载百度 ...
 - 北大ACM(POJ1015-Jury Compromise)
			
Question:http://poj.org/problem?id=1015 问题点:DP. Memory: 1352K Time: 94MS Language: C++ Result: Accep ...
 - 在Resource中使用x:Bind
			
Build2015上,MS热情高涨的演示了x:Bind,一种新的Binding方式,新的方式有如下优点: 1更好的性能(内存占用,CPU占用) 2BuildTime的Binding 具体在Channe ...
 - DiscuzX2.5数据库字典 值得学习
			
pre_common_admincp_cmenu – 后台菜单收藏表title => ‘菜单名称’url => ‘菜单地址’sort => ’0′ COMMENT ‘菜单类型,备用’ ...
 - blender--(凹凸贴图)................https://jingyan.baidu.com/article/9f63fb917c4becc8400f0ea8.html
			
在blender中直接绘制模型凹凸纹理细节 听语音 | 浏览:32 | 更新:2018-02-20 11:18 1 2 3 4 5 6 7 分步阅读 在blender中为了表现更多的模型细节,我们会常 ...
 - luogu P4172 [WC2006]水管局长 LCT维护动态MST + 离线
			
Code: #include<bits/stdc++.h> #define maxn 1200000 #define N 120000 using namespace std; char ...
 - 什么是 C 和 C ++ 标准库?
			
简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的. 我已经接触C++一段时间了,一开始就让我感到疑惑的是其内部结构:我所使用的内核函数和类从何而来? 谁发明了它们 ...
 - 迷宫自动生成以及基于DFS的自动寻路算法
			
直接贴代码 #include<ctime> #include<conio.h> #include<iostream> #include<windows.h&g ...