tolua
提供几个 C++ 与 Lua 进行数据交换的工具函数。
~~
tolua.type
返回一个 C++ 对象的类型描述字符串。
<span class="kw1" style="color: rgb(177, 177, 0);">local</span> node <span class="sy0" style="color: rgb(102, 204, 102);">=</span> display<span class="sy0" style="color: rgb(102, 204, 102);">.</span>newNode<span class="br0" style="color: rgb(102, 204, 102);">(</span><span class="br0" style="color: rgb(102, 204, 102);">)</span> <span class="kw3" style="color: rgb(0, 0, 102);">print</span><span class="br0" style="color: rgb(102, 204, 102);">(</span>tolua<span class="sy0" style="color: rgb(102, 204, 102);">.</span><span class="kw3" style="color: rgb(0, 0, 102);">type</span><span class="br0" style="color: rgb(102, 204, 102);">(</span>node<span class="br0" style="color: rgb(102, 204, 102);">)</span><span class="br0" style="color: rgb(102, 204, 102);">)</span> <span class="co1" style="color: rgb(128, 128, 128); font-style: italic;">-- 输出 CCNode</span>
~~
tolua.cast
强制转换对象类型,用途请参考 CCArray。
格式:
tolua<span class="sy0" style="color: rgb(102, 204, 102);">.</span>cast<span class="br0" style="color: rgb(102, 204, 102);">(</span>对象<span class="sy0" style="color: rgb(102, 204, 102);">,</span> 类型名称<span class="br0" style="color: rgb(102, 204, 102);">)</span>
~~
tolua.isnull
检查指定 Lua 值中保存的 C++ 对象是否已经被删除。
我们在将 C++ 对象保存到 Lua 值后。只要还有 Lua 代码在使用这些值,那么即使 C++ 对象已经被删除了,但 Lua 值仍然会存在。如果此时调用 Lua 值的方法就会出错。
因此可以用 tolua.isnull() 检查 Lua 值中的 C++ 对象是否已经被删除。
已删除 返回 true 没有被删除 返回 false