原文:IOS中的block和retain cycle (经典)

retain cycle 的产生 说到retain cycle,首先要提一下Objective C的内存管理机制。 作为C语言的超集,Objective C延续了C语言中手动管理内存的方式,但是区别于C 的极其非人道的内存管理,Objective C提出了一些机制来减少内存管理的难度。 比如:内存计数。 在Objective C中,凡是继承自NSObject的类都提供了两种方法,retain和re ...

2012-12-31 15:40 0 12343 推荐指数:

查看详情

iosassign、copy 、retain、strong、weak的区别

前言 首先说明一下,没接触过iOS 4及之前版本编程的人,很可能没用过assign、retain、copy关键字,这是因为iOS 5之后添加了ARC的特性,顺便提出来新的strong、weak关键字。相比而言,weak相当于老版本的assign(基本一致),strong相当于retain(一致 ...

Tue Aug 11 19:14:00 CST 2015 0 3959
iOS深拷贝、浅拷贝和retain的区别

浅拷贝:浅拷贝是对object对象的指针拷贝,让指针指向同一块内存地址,“对象永远只有一个",浅拷贝使对象的引用计数器+1。代码如下: 可以看出不可变字符串的指针指向了同一地址,并没有重新开 ...

Fri Aug 05 19:52:00 CST 2016 0 1786
iOS block异常 判断block是否为空

我们在调用block时,如果这个block为nil,则程序会崩溃,报类似于EXC_BAD_ACCESS(code=1, address=0xc)异常【32位下的结果,如果是64位,则address=0x10】。如图1,这个异常表示程序在试图读取内存地址0xc的信息时出错。 在定义一个block时 ...

Wed Mar 22 23:02:00 CST 2017 0 3683
iOS开发Block的理解与使用

简介 我们可以把Block当做Objective-C的匿名函数。Block允许开发者在两个对象之间将任意的语句当做数据进行传递,往往这要比引用定义在别处的函数直观。另外,block的实现具有封闭性(closure),而又能够很容易获取上下文的相关状态信息。 block ...

Sat May 28 19:29:00 CST 2016 0 9513
iOSBlock循环引用的问题

说到循环引用问题,想必大家都碰到过吧,比如在使用Block的时候,使用__weakSelf来代替self解决等,但是对于这个,还是有不少可以探索的点,下面我就来说下,希望对大家有所帮助。 是否所有的Block,使用self都会导致循环引用? 答案是否定的!如下面所示的这种情况 ...

Sat Sep 29 23:52:00 CST 2018 0 1308
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM