Lua调用Oc代码
--Lua 开始调用 Oc
function PlatformTools.loginFb( callBack_1,callBack_2 )
local parms = {
cb_1 = callBack,
cb_2 = callBack_2,
}
local ok,ret = luaoc.callStaticMethod("AppController","loginFb",parms)
end
Oc回调Lua代码
//用来承接lua中方法的int 方法Id
NSInteger handlerID_1 = -1;
//传入参数 方法的例子,下边被注释的,就是
//+ (void)showAdsUI:(NSString *)str withHandler:(NSInteger)luaHandler
// 这个是直接传入 Lua 回调方法
+(void)loginFb:(NSDictionary *)dict
{
NSInteger luaHandler_1 = (int)[[dict objectForKey:@"cb_1"] intValue_1];
handlerID_1 = luaHandler_1;
NSLog(@"测试----handlerID_1:%d",(int)handlerID_1);
//下面三行是重点
cocos2d::LuaValueDict item; // 数组
item["str"] = cocos2d::LuaValue::stringValue("");
item["int"] = cocos2d::LuaValue::intValue(100);
item["bool"] = cocos2d::LuaValue::booleanValue(isShow);
cocos2d::LuaObjcBridge::getStack()->pushLuaValueDict(item);//参数压栈
cocos2d::LuaObjcBridge::getStack()->executeFunction(1);//括号里面的1 是告诉lua传递的形参是1个
cocos2d::LuaObjcBridge::releaseLuaFunctionById((int)handlerID_2); //最后记得释放
}
上边两个例子代码,看着用即可。!!!
完全可以实现互调!!!