block在ARC和MRC中的区别
2015-11-20 10:24
99 查看
block在ARC和MRC中的声明引用有些区别.
/**
block可以存储在栈中,也可以在堆中
默认存储在栈中,不需要管理内存
存储在堆中的block会对block进行retain操作
*/
//(MRC)block在堆中时,不想对block进行retain操作,前面加__block
//(ARC)前面加__weak或__unsafe_unretained
//__weak和__unsafe_unretained的区别:__weak则在释放时会对对象赋值nil,后者不会
//Block_copy使栈中的block转移到堆中,并对block会引用的对象进行retain操作
//避免block引用的对象进行retain操作,在引用对象声明时前面加__block
/**
block可以存储在栈中,也可以在堆中
默认存储在栈中,不需要管理内存
存储在堆中的block会对block进行retain操作
*/
//(MRC)block在堆中时,不想对block进行retain操作,前面加__block
//(ARC)前面加__weak或__unsafe_unretained
//__weak和__unsafe_unretained的区别:__weak则在释放时会对对象赋值nil,后者不会
//Block_copy使栈中的block转移到堆中,并对block会引用的对象进行retain操作
//避免block引用的对象进行retain操作,在引用对象声明时前面加__block
相关文章推荐
- 动态查找表 事物隔离级别 reader
- C-位移运算
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
- linux nohup 后台执行
- BeautifulSoup应用笔记(1)- 解析器及对象类型
- bit,byte,汉字,KB,MB,GB,TB...
- [ASP.NET 5]终于解决:Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll'
- Oracle Form编译路径问题
- ArrayList联系二------自定义对象,然后去除重复元素
- 运行过程中打印出函数调用栈
- 每天一点python —— yield
- oracle怎样把查询的null转换为0
- HTML5中canvas的fillRect、arc用法
- 在iOS 8及以后使用UIAlertController 等各种弹出警告通知
- 模拟QQ分组(具有伸缩功能) (添加开源框架的光闪烁效果)SimpleExpandableListAdapter 适配器的用法,并且可添加组及其组内数据。
- GOLANG比较方便的地方
- 11月16日中国域名商解析量TOP15:易名中国亚军
- Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- Android-ConvenientBanner轻松实现广告头效果
- 代码方式删除SVN