block与刷新(collectionView、tableview)
2015-06-26 16:33
239 查看
今天写网络请求部分,请求获取的数据在block中,在给cell赋值时,dataarray总是空(没有数据),原来是block的问题:
例:
[RequestEngine_SJ
loadPresentListDataCompleted:^(NSArray *listArr) {
NSLog(@"listArr=%@",listArr);
[_giftArr
addObjectsFromArray:listArr];
[_giftView
reloadData];
NSLog(@"_giftArr=%@",_giftArr);//这里就不是了(若下载的有数据),所以reloadData要在block体中执行
}];
NSLog(@"_giftArr=%@",_giftArr);//这里打印是空
// [_giftView reloadData];在这里没有用
原因:在执行上面方法时,先把那个函数执行完才执行block里面的方法(总是晚一步),用block中的数据信息(例上面(NSArray *listArr))就要在block中来写。如上:[_giftView
reloadData]在block外时cell加载不到数据(_giftArr还是空的),放在block里面_giftArr已赋值,reloadData就有数据了。
例:
[RequestEngine_SJ
loadPresentListDataCompleted:^(NSArray *listArr) {
NSLog(@"listArr=%@",listArr);
[_giftArr
addObjectsFromArray:listArr];
[_giftView
reloadData];
NSLog(@"_giftArr=%@",_giftArr);//这里就不是了(若下载的有数据),所以reloadData要在block体中执行
}];
NSLog(@"_giftArr=%@",_giftArr);//这里打印是空
// [_giftView reloadData];在这里没有用
原因:在执行上面方法时,先把那个函数执行完才执行block里面的方法(总是晚一步),用block中的数据信息(例上面(NSArray *listArr))就要在block中来写。如上:[_giftView
reloadData]在block外时cell加载不到数据(_giftArr还是空的),放在block里面_giftArr已赋值,reloadData就有数据了。
相关文章推荐
- [Unity3d]打包Assetbundle并加载
- LaTeX中使用包subfig引用子图标号
- Linux中断分层工作队列学习
- javaweb学习总结——使用Cookie进行会话管理
- 《Windows服务器配置与管理》 web发布
- Win10 Build 10154新版曝光:99%的正式版
- ORA-00980: synonym translation is no longer valid
- 架构师推荐学习的一些知识体系
- iOS画图 简单划线
- opencv学习笔记(四)
- FFmpeg(2.4.4)中关于图像格式的头文件 -- pixfmt.h
- 轮询,长轮询,长连接,Flash Socket
- 常见加密算法的分类与比较
- java中Cookie的使用
- PHP快速读取CSV大文件
- 浅析 Hadoop 中的数据倾斜
- poj1795
- 《高效能人士的七个习惯》--读书笔记
- Length of Last Word
- java对cookie的操作