Block如何避免self retain
来源:互联网 发布:计算圆周率的算法 编辑:程序博客网 时间:2024/06/05 15:51
http://stackoverflow.com/questions/3975675/objective-c-blocks-is-there-a-way-to-avoid-self-being-retained
从以上的讨论中,我没没有办法让block引用参数而不导致selfretain的方法,但是提到了三种方式来实现在block中引用参数而不导致self retain的解决方案:
1 将当前对象当做block的参数传进去,其形式:
[request getRaidersFrompageNum:pageNum finished:^(id target,id result, ServerResponseState state)
{
[(RaidersViewController *)target getRaidersInfoAndShow:state response:result pageNum:pageNum];
}];
- (void)blockTimer
{
__block TestViewController *blockSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
blockSelf->_timer=[NSTimer scheduledTimerWithTimeInterval:1.0
target:blockSelf
selector:@selector(caculateLeftTimeForTomorrow)
userInfo:nil
repeats:YES] ;
[[NSRunLoop currentRunLoop] addTimer:blockSelf->_timer forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
});
}
将self手动转化为__block类型,这样即可使block不在retain self- Block如何避免self retain
- Block如何避免self retain
- 如何避免在Block里用self造成循环引用
- 如何避免在Block里用self造成循环引用
- 如何避免在Block里用self造成循环引用
- 如何避免在Block里用self造成循环引用
- 如何避免block中不停的使用weak self
- 如何避免在Block里用self造成循环引用
- 使用Block避免Cycle Retain和Crash
- block里的self,避免循环引用
- block 会因调用了成员变量而 retain self
- 正确使用Block避免Cycle Retain和Crash
- 正确使用Block避免Cycle Retain和Crash
- 正确使用Block避免Cycle Retain和Crash
- 正确使用Block避免Cycle Retain和Crash
- 正确使用Block避免Cycle Retain和Crash
- 正确使用Block避免Cycle Retain和Crash
- 正确使用Block避免Cycle Retain和Crash
- ORA-01157 错误解决,原因DBWR锁定产生
- HDU 2571
- 如何解决Tomcat启动时重复出现Socket accept failed错误
- Android打造ListView万能适配器
- 60. Permutation Sequence
- Block如何避免self retain
- LINUX 新增的磁盘不建立分区,直接建立文件系统并挂载怎么办?
- centos6.5配置静态ip
- 封装类似jQuery的ajax函数
- android studio创建assets目录并且利用webView加载其html(by 星空武哥)
- LeetCode 72. Edit Distance(编辑距离)
- [leetcode]【数组】81. Search in Rotated Sorted Array II
- SciTe 中文设置(解决乱码,中文界面)
- 日常笔记之【+“”】