前言在不久前看AFNetworking的源码时候发现了这么一句://不知道这行代码的使用场景的同学你该去自习看看ARC的注意事项和Block的使用了
//AFNetworking的写法__weak__typeof(&*self)weakSelf=self;
//我之前一直这么写的__weak__typeof(self)weakSelf=self;
//或者这么写__w..
分类:
其他好文 时间:
2015-02-12 16:26:34
阅读次数:
181
_weak typeof(self) weakSelf = self;
(一)内存管理原则
1、默认strong,可选weak。strong下不管成员变量还是property,每次使用指针指向一个对象,等于自动调用retain(), 并对旧对象调用release(),所以设为nil等于release。
2、只要某个对象被任一strong指针指向,那么它将不会被销毁,否则立即释放,不用等runl...
分类:
其他好文 时间:
2015-02-10 11:20:29
阅读次数:
142
因为自己之前在block中需要递归调用自己本身,而没有用weak。导致在[self removeFromSuperview]方法时,CPU使用率一只高达百分之百。。block一直持有self。。。fix:__weak 当前类 *weakSelf = self;[weakSelf 递归调用的方法];这...
分类:
移动开发 时间:
2015-02-05 18:16:35
阅读次数:
163
转载,原文: http://blog.lessfun.com/blog/2014/11/22/when-should-use-weakself-and-strongself-in-objc-block/当然有一个更详细的专题:http://tanqisen.github.io/blog/2013/0...
分类:
其他好文 时间:
2014-12-28 16:52:22
阅读次数:
158
说到block .想听我废话下它的基础。block 是一个闭包函数。所谓闭包就是 引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。oc 中 block 默认创建后 分配在栈中。。当向其 发送 copy 消息后 被移到堆上。 防止被释放。由上面定义可...
分类:
其他好文 时间:
2014-10-18 18:11:14
阅读次数:
199
什么是block?代码块:{}里的东西block可以想id一样装到array里,dictionary里。。。但是不能对他发送消息。nsdictionary 里有一个方法:enumerateKeysAndObjectUsingBlock:^(id key,id value,BOOL *stop)这个方...
分类:
其他好文 时间:
2014-07-28 15:13:53
阅读次数:
200
MRC
防止 block 对self的引用 解决办法
__block typeof(self) weakSelf = self;
ARC
防止 block 对self的引用 解决办法
__weak typeof(self) weakSelf = self;...
分类:
其他好文 时间:
2014-07-24 23:21:43
阅读次数:
290