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(1000);
item["success"] = CCLuaValue::booleanValue(TRUE);
CCLuaObjcBridge::getStack()->pushCCLuaValueDict(item);// 3. 执行 Lua function
CCLuaObjcBridge::getStack()->executeFunction(1);// 4. 释放引用 ID
CCLuaObjcBridge::releaseLuaFunctionById(callbackId);

转载于:https://www.cnblogs.com/wiessharling/p/4798594.html

cocos2d-x Lua与OC互相调用相关推荐

  1. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js

    iOS js oc相互调用(JavaScriptCore) 从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了. 下面我们就简单了解一下这个框 ...

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

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

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

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

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

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

  5. iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) 2.利用WKW ...

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

    2019独角兽企业重金招聘Python工程师标准>>> iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge 转载:原地址 ht ...

  7. String 转表情, Swift 与 OC 中调用

    1. 在Swift 中创建 NSString 分类,String+Emoji.swift //用 String 加不了 @objc 修饰关键字 @objcMembers 用来修饰整个类 extensi ...

  8. OC语言基础一:OC方法调用机制,new方法实现原理

    文章目录 OC方法调用机制 new方法实现原理 野指针 内存溢出 内存泄漏 alloc和init OC方法调用机制 OC有两种方法 Person *person=[Person new]; [pers ...

  9. swift 5.1和oc双语言 WechatOpenSDK (1.8.7.1)微信登录集成教程封装成支持swift和oc方法调用

    目录 先看一下demo演示 安装pod 安装 到微信官网注册账户,并获取3个数据 添加关联域名 Associated Domains info.plist里面 添加 白名单 添加 URL Scheme ...

最新文章

  1. LTE: MIB和SIB,小区选择和重选规则
  2. 微信小程序之录音与播放功能(完整示例demo)
  3. NOIP2018 模拟 9.11
  4. C++line segment intersection线段求交(交点)(附完整源码)
  5. aspx是什么语言_什么是网页
  6. 计算机开机是什么,你了解电脑开机时都做了些什么吗?
  7. Centos6.4下zabbix的安装配置
  8. mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...
  9. EasyBCD 2.4 个人版下载
  10. 《Android游戏开发详解》一2.9 类
  11. 21世纪——交互设计
  12. windows远程连接linux系统(图文)
  13. Spring源码阅读之在spring源码中创建一个gradle测试模块
  14. 教程-Delphi7 自带控件安装对应表
  15. windows跨设备实现复制粘贴
  16. 美国专利客体适格性判断标准浅析
  17. 计算机网络技术班级16字口号,十六字班级加油口号
  18. 查看windows office是否激活
  19. Win10应用商店提示0x80070422解决方法
  20. ConvMAE:当Masked卷积遇见何恺明的MAE

热门文章

  1. 使用Linux进行c或c++编程
  2. java中的action是指什么_Struts2【开发Action】知识要点
  3. 基于jsp+Spring+mybatis的SSM企业门户网站设计和实现
  4. java制作扫雷游戏中埋雷的难点_月薪30K程序员花了一个小时,用c++做出经典扫雷游戏 !...
  5. java开发项目实例_学java开发,项目经验最重要
  6. php 路径有汉字,路径文字工具
  7. java子类和父类实例_java中父类与子类之间的转换示例
  8. javascript V8引擎垃圾收集机制
  9. 关于 create-react-app 自定义 eslint文件配置解决方案
  10. red flag linux指定域名,Red Flag Server 4.1 系统管理手册(适用桌面linux4.1) 6