关于IOS接入lua设置C++回调的方法求解

最近在研究IOS游戏接入,之前是做Android的对于C、C++基础比较差,在lua中设置C++的回调函数遇到了障碍,目前看到的是使用ScriptHandlerMgr,下面是demo的代码,求大神指教:
1.在lua中设置回调
require “config”
require “cocos.init”

local function main()
print(“is in main”)
require(“app.MyApp”):create():run()
local i = test_lua_bind(99)
print(“lua bind”…tostring(i))
ScriptHandlerMgr:getInstance():registerScriptHandler(tolua.cast(main, “cc.Node”), tolua, cc.Handler.CALLFUNC)
end

local function tolua(i)
print(“to lua”…tostring(i))
end
2.C++中的调用
int AppDelegate::test_cpp_tolua(int i){
__Integer *t = __Integer::create(i);
BasicScriptData data(this,t);
ScriptEvent eve(kCallFuncEvent , &data); //kCallFuncEvent
auto engine = LuaEngine::getInstance();
LuaEngine::getInstance()->sendEvent(&eve);
}
运行时在lua中注册时的时候报错:
LUA-print] [string “/var/containers/Bundle/Application/5EA134CC-F576-4752-AB8C-B8492CD07F26/testCocos-mobile.app/src/main.lua”]:12: error in function ‘registerScriptHandler’.
argument #3 is ‘table’; ‘[not function]’ expected.

本人刚开始自学,基础知识很薄弱,希望给为前辈能给一下详细的指点!!不胜感激