关于block中内存释放
来源:互联网 发布:电子线路板设计软件 编辑:程序博客网 时间:2024/06/05 17:44
block里面不能直接用self,需转为weak弱类型
写法1:
__weak typeof(self) weakSelf = self;//转为weak弱类型
[self.network doRequestUsingCookieWithType:TLDRequestType_Get urlString:kGetRechargeRecordURL paramsDic:paramDic fromDelegate:self successBlock:^(AFHTTPRequestOperation *operation, id resultData) { [weakSelf requestRechargeRecordFinished:resultData]; } failBlock:^(AFHTTPRequestOperation *operation, NSError *error) { [weakSelf.HUD showToastWithText:kRequestFailString]; }];
写法2:
#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self;
WS(ws) ws.subListPickerView.subListSelectedBlock = ^(NSString *typeName, NSString *typeIdChildren) { if (typeName == nil) { [ws.choiceTypeBtn setTitle:ws.subListTypeNameArray[0] forState:UIControlStateNormal]; ws.typeIdChildren = ws.typeIdChildrenArray[0]; }else { [ws.choiceTypeBtn setTitle:typeName forState:UIControlStateNormal ]; ws.typeIdChildren = typeIdChildren; } };
总结经验教训:
1.回掉里面的属性一定要弱引用,否组内存不释放
2.判断是否内存释放,离开对应控制器操作时,是否走到-(void)delloc函数
- (void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self];}
阅读全文
0 0
- 关于block中内存释放
- 关于free释放内存
- flex中关于内存释放几个注意的地方(zz)
- 关于C#中对象内存释放的处理
- 关于在dll中申请内存,外部释放的问题
- 关于在析构函数中释放内存
- 关于在dll中申请内存,外部释放的问题
- 关于C/C++中内存分配与释放的疑惑?
- 关于在dll中申请内存,外部释放的问题
- 关于在dll中申请内存,外部释放的问题
- 关于C++中delete释放内存时效性问题
- 关于 SetProcessWorkingSetSize 和内存释放
- 关于内存释放的问题
- 关于 SetProcessWorkingSetSize 和内存释放
- 关于 SetProcessWorkingSetSize 和内存释放
- 关于 SetProcessWorkingSetSize 和内存释放
- UWSGI关于内存释放问题
- 关于vector的内存释放
- 首字母大写
- Latex 使用mcode 插入matlab代码
- Mysql数据库基本操作
- Kafka源码中的Producer Record定义
- Oracle复制表
- 关于block中内存释放
- 5 BEST OPEN SOURCE PROJECTS BUILT USING NODE
- WebStorm安装与使用
- Android 7.0 FileProvider 自动更新适配
- Android蓝牙BLE应用的开发
- [LeetCode]522. Longest Uncommon Subsequence II
- 欢迎来到笨笨1号的python学习历程
- pyhotn3入门基础-6使用dict和set
- ASP.NET基础之HttpContext学习