cocos2d-x关于CCTableView的“乱序问题”的理解
Cocos2d-x有一个不错的控件CCTableView。之前用的时候发现有cell的顺序错乱和重复出现的问题。后来仔细看了一下源码,发现是自己用法错误。但是网上有人说是一个bug,要改源码。我发现2.04以上的源码都是没问题的。
先来看看网上说的改源码是怎么样改的:
CCTableViewCell *CCTableView::dequeueCell()
{
CCTableViewCell *cell;
// if (m_pCellsFreed->count() ==0) {
if (1) {
cell = NULL;
} else {
cell = (CCTableViewCell*)m_pCellsFreed->objectAtIndex(0);
cell->retain();
m_pCellsFreed->removeObjectAtIndex(0);
cell->autorelease();
}
return cell;
}
也就是说,让 dequeueCell总是返回NULL。这样一来
CCTableViewCell* ProfileLayer::tableCellAtIndex(cocos2d::extension::CCTableView *table,unsignedint idx){
CCTableViewCell* cell = table->dequeueCell();
if (!cell) {}
return cell;
}
这个函数中每次都在执行if (!cell)语句,如果这个if语句里是创建cell的话,当你不断滑动这个view,就会不断创建,内存会越来越少,直到crash。
正确的用法是在
tableCellAtIndex(cocos2d::extension::CCTableView *table,unsigned int idx)中,每次根据idx来“刷新”cell的内容。也就是说,dequeueCell()返回的不一定是空,有可能是其它cell的内容,这个时候你可以把这个cell的内容都抹掉再重现加载cell的顺序为idx的内容。
转载于:https://www.cnblogs.com/snake-hand/p/3149566.html
cocos2d-x关于CCTableView的“乱序问题”的理解相关推荐
- wireshark和tcpdump抓包TCP乱序和重传怎么办?PCAP TCP排序工具分享
点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍TCP排序方法,分享一个Windows版的TCP排序工具." 在分析协议的过程中,不可避免地需要抓包. 无论抓包条件如何优越, ...
- 基于三维向量对的乱序堆叠物体的位姿识别
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 摘要:针对乱序堆叠物体识别效率低.速度慢的问题,提出一种快速可靠的3D对象检测可以应用于复杂场景中随机 ...
- python使用random模块生成随机数、实现随机乱序和随机抽样?
如何使用random模块生成随机数.实现随机乱序和随机抽样? random.random()函数可以生成[0.0, 1.0)之间的随机浮点数. random.uniform(a, b)函数可以生成[a ...
- 查处的数据如何乱序_老司机总结常用镜像方法,让镜像数据更加可靠
在做数据包分析的时候,经常会说一句话,"Packets never lie(数据包不会说谎)",即数据包会真实反应网络服务和应用服务的真实状态.基于网络镜像的流量分析同样如此,如果 ...
- TCP数据流稳定性--TCP分片,重组及乱序
1.IP分片的情况.IP软件包有一个[分片]和[重组]模块,一个IP数据报在传输中可以被ip软件包的[分片]模块分片,在目的接收端B的IP软件包 的[重组]模块重新组合.接收端B的IP软件包如果收到乱 ...
- FastJson乱序问题
1.初始化为有序json对象 JSONObject jsonOrdered= new JSONObject(true); 2.将String对象转换过程中,不要调整顺序 JSONObject json ...
- Android ListView异步加载图片乱序问题,原因分析及解决方案
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...
- 编译乱序(Compiler Reordering)
作者:smcdef 发布于:2019-1-23 22:59 分类:内核同步机制 编译器(compiler)的工作就是优化我们的代码以提高性能.这包括在不改变程序行为的情况下重新排列指令.因为compi ...
- 对python乱序字符串检查算法研究
显示不同量级的算法的一个很好的例子是字符串的乱序检查.乱序字符串是指一个字符串只是另一个字符串的重新排列.例如,'heart' 和 'earth' 就是乱序字符串.'python' 和 'typhon ...
- python 使用sort()函数和正则表达式(lambda)对os.listdir()获取的文件夹文件列表进行重新排序 乱序排序
# 排序函数,对文件列表进行排序 # 排序函数,对文件列表进行排序(filenames为文件夹文件的文件名的字符串列表) def sort_filenames(filenames):# (1)可以以l ...
最新文章
- 避坑指南:数据科学家新手常犯的13个错误(附工具、学习资源链接)
- 重磅:国家正式出台学术不端行为界定
- Hibernate Validation与Spring整合各注解的用法Demo
- 水晶报表Crystal 语法 实用字段编辑
- androidEditTextinputType及android:imeOptions=”actionDone”(转)
- 栈的应用_DFS解迷宫问题
- 基于ZKWeb + Angular 4.0的开源管理后台Demo
- 【人工智能】《Python深度学习》
- python是一种汇编类型的语言_python全栈开发学习_day2_语言种类及变量
- joint_state_publisher_gui
- 卸载ubuntu系统,恢复win10单系统【win10+Ubuntu20.04双系统】
- mysql 1067_mysql启动错误1067进程意外终止的解决方法
- java bitwise_java – Bitwise不对一串位操作
- java8新特性之Stream流
- 那些百万年薪的算法工程师,都是经历了哪些九死一生?
- 富士康员工盗卖iPhone部件3年赚3亿;张朝阳称工作只为赚钱太low;国产统一操作系统 UOS 正全面适配 | EA周报...
- mysql中union学习总结
- 微信oa服务器,企业号来了—你必须了解OA与微信结合的几种方式
- android11.0 Launcher3 高端定制之 BubbleTextView 应用名称双行显示
- SAP ABAP 业务对象 BUS6038 AssetDownPayment 资产:预付款 BAPI 清单和相关 TCODE