1. Lua 调用OC

先看例子:

hello.lua:

 -- 点击回调函数
local function notifymenuCallbackTest()
local luaoc = require('luaoc')
local ok, ret = luaoc.callStaticMethod("RemoteRequestRouter", "notifyWatch", {params1 = "NOTIFICATION_TO_HOME"})
end

RemoteRequestRouter.m

#pragma mark - 正确的通知WatchKit Extension的函数。
+ (void)notifyWatch:(NSDictionary *)dict {
NSLog(@"IOS app call notifyWatch to notify Apple Watch.");
NSString *str = [dict objectForKey:@"params1"];
//(CFStringRef)str CFSTR("")
CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(),
(__bridge CFStringRef)str,
(__bridge const void *)(self), nil, TRUE);
}

这样就完成了Lua调用静态类成员函数。

2. OC调用Lua

// functionId 是 Lua function 的引用 ID,参考 LuaJavaBridge 文章中的描述

// 1. 将引用 ID 对应的 Lua function 放入 Lua stack
CCLuaObjcBridge::pushLuaFunctionById(functionId); // 2. 将需要传递给 Lua function 的参数放入 Lua stack
CCLuaValueDict item;
item["title"] = CCLuaValue::stringValue("hello");
item["coins"] = CCLuaValue::intValue();
item["success"] = CCLuaValue::booleanValue(TRUE);
CCLuaObjcBridge::getStack()->pushCCLuaValueDict(item); // 3. 执行 Lua function
CCLuaObjcBridge::getStack()->executeFunction(); // 4. 释放引用 ID
CCLuaObjcBridge::releaseLuaFunctionById(callbackId);

cocos2d-x Lua与OC互相调用的更多相关文章

  1. Lua 与 OC 相互调用

    本文主要讲如何完成lua和object-c的相互调用.       lua是一种脚本语言,可以方便的移植到各种宿主语言中,并且可以支持热更新,在游戏开发中也能当做主要的语言来编写游戏的逻辑,但是要接入 ...

  2. Lua与C++相互调用

    {--1.环境--} 为了快速入手,使用了小巧快速的vc++6.0编译器 以及在官网下载了Lua安装包..官网地址{--http://10.21.210.18/seeyon/index.jsp--} ...

  3. 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...

    找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...

  4. iOS 关于js与OC相互调用的那些事

    最近项目上使用js调用OC,OC再次调用JS,再次在JS页面上面回显数据. 项目中使用的是WKWebview,加载网路的URL,其实就是使用WK加载出来的H5网页,在项目中用的是H5网页有个识别按钮, ...

  5. iOS js oc相互调用JavaScriptCore(一)

    原址:http://blog.csdn.net/lwjok2007/article/details/47058101 1.普通调用 从iOS7开始 苹果公布了JavaScriptCore.framew ...

  6. iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge

    上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用,这一篇来介绍一下WKWebView 又是如何通过WebViewJavascr ...

  7. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  8. iOS下JS与OC互相调用(四)--JavaScriptCore

    前面讲完拦截URL的方式实现JS与OC互相调用,终于到JavaScriptCore了.它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下, ...

  9. iOS下JS与OC互相调用(二)--WKWebView 拦截URL

    在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互. 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView. 同样的用WKWebVie ...

随机推荐

  1. 太受不了了,,REST_FRAMEWORK太方便啦~~

    按英文原始的DOCUMENT走一圈,从最手工的输出到高度的集成. 最后真的就几行代码,实现最常用的JSON API..纯RESTFUL风格. 但,其核心是要记住序列化生反序列的过程,都是要以PYTHO ...

  2. OUTLOOK连EXCHANGE,配置POP3时跳出错误问题

    "Authentication failed because outlook doesnt support any Resolved Question: "Authenticati ...

  3. QT事件研究的文章

    我始终认为,Windows里最重要的不是API,而是消息.同理,QT里最重要的是事件.然而我对事件的原理和用法至今不是很理解,先放几篇文章在这里,有空回来细细研读: http://m.blog.chi ...

  4. 解析Android开发优化之:对Bitmap的内存优化详解

    在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图 ...

  5. pay lip service to

    Understanding Progressive Enhancement中看到了这句话: Concerned with content availability, overall accessibi ...

  6. 使用android.view.TouchDelegate扩大View的触摸点击区域

    Android4.0设计规定的有效可触摸的UI元素标准是48dp,转化为一个物理尺寸约为9毫米.7~10毫米,这是一个用户手指能准确并且舒适触摸的区域. 如下图所示,你的UI元素可能小于48dp,图标 ...

  7. bzoj2242

    快速幂 扩展欧几里得 baby-step-giant-step 可以自行baidu 程序附部分注释 ; type link=^node;      node=record        re,wh:l ...

  8. 【转】如何单独编译Android源代码中的模块--不错

    原文网址:http://blog.csdn.net//article/details/6566662/ 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命 ...

  9. JS日期时间格式化

    Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + ...

  10. AjaxPro使用说明

    转自:http://www.cnblogs.com/lexus/archive/2007/11/29/977281.html 目录 AjaxPro使用说明    1 目录    2 修改历史纪录    ...