C++与Lua进数据交换的工具函数
来源:互联网 发布:大数据 结构化数据 编辑:程序博客网 时间:2024/06/05 04:36
1)tolua.type
返回一个 C++ 对象的类型描述字符串
格式:
self.studio.layout = cc.CSLoader:createNode(GAMETABLE_CSB);
print(tolua.type(self.studio.layout)) -- 输出 cc.Node
2)tolua.cast
强制转换对象类型
格式:
tolua.cast(对象, 类型名称)~~
3)tolua.isnull
检查指定 Lua 值中保存的 C++ 对象是否已经被删除。
我们在将 C++ 对象保存到 Lua 值后。只要还有 Lua 代码在使用这些值,那么即使 C++ 对象已经被删除了,但 Lua 值仍然会存在。如果此时调用 Lua 值的方法就会出错。
因此可以用 tolua.isnull() 检查 Lua 值中的 C++ 对象是否已经被删除。
已删除 返回 true 没有被删除 返回 false
同时,还要注意一个问题,C/C++分配的内存在Lua中表现为一个userdata类型,且这个类型不受Lua垃圾回收机制的管理,所以有时成员变量已经移除了,但是这个类型没有回收
if self.btnLayer then self.btnLayer:removeFromParent() self.btnLayer = nil end local btnLayer = createBtnLayer(btnInfo); btnLayer:setLocalZOrder(Cur_Max_Z_Order); btnLayer:setName("isHaveBtnLayer") self.btnLayer = btnLayer self:addChild(btnLayer);
其中createBtnLayer是一个Layer层,在Layer层中点击一个按钮是已经移除,可是self.btnLayer还是存在
这是在移除Layer层之前,把self.btnLayer = nil 这时才没有问题
0 0
- C++与Lua进数据交换的工具函数
- 与Lua交换数据
- Lua和C的数据交换
- 与Lua交换自定义数据
- 与Lua交换自定义数据
- Lua - coroutine 状态与数据交换
- Lua 与C 交换 第一篇
- android与服务器进行json数据交换的工具类
- C/C++与Lua之间进行数据函数交互
- Lua和C程序通过一个堆栈交换数据
- Linux中pascal与c的数据交换
- lua与c++数据交换之表和数组
- C经典 写函数进行数据交换
- Lua与C/C++的交互5:C/C++调用Lua函数
- Lua与C/C++的交互6:Lua调用C/C++函数
- lua--从小白开始(4)--C/C++函数访问lua数据的一些基础协议
- objective-c与js交换数据
- PHP与 后台c交换数据
- java面试——springMVC面试题
- JS unload事件(UI)
- MFC中CListCtrl添加多行提示类
- 字符串那点事
- Java数据类型中String、Integer、int相互间的转换
- C++与Lua进数据交换的工具函数
- 用户行为分析思考
- JMeter学习笔记20-使用步长插件来设置负载场景
- Mybatis Generator配置文件完整配置详解
- Windows应用程序常用消息
- Ajax 全解
- linux的一些指令2
- Wpf RichTextBox paragraph spacing 段落间距和行高 height
- 数据结构复习3.ArrayList/LinkedList + iterator