具体代码如下:
cocos2d::CCLuaValueDict item;
item"success"] = cocos2d::CCLuaValue::booleanValue(success);
item"data"] = cocos2d::CCLuaValue::stringValue();
cocos2d::CCLuaObjcBridge::getStack()->pushCCLuaValueDict(item);
cocos2d::CCLuaObjcBridge::getStack()->executeFunction(2);
cocos2d::CCLuaObjcBridge::releaseLuaFunctionById(functionId);
```
此时,我的functionId ==1,执行后报错 “value at stack -3] is not function”;
问题1:
executeFunction的参数传的是item参数的个数(2),还是functionId?
问题2:
跟踪executeFunction,会看到下面这句:
int functionIndex = -(numArgs + 1);
if (!lua_isfunction(L, functionIndex))
{
CCLOG("value at stack %d] is not function", functionIndex);
lua_pop(L, numArgs + 1); // remove function and arguments
return 0;
}
```
没理解是怎么回事。
补充一下:我是在block里面调用luafunction的,我尝试在block外面调用luafunction,executeFunction(functionId),调用成功,但是调用下一个functionId(=2)的时候出错。
请大伙帮忙解答,谢谢