OC与C++之间的通信

OC = > C++1.把调用方的.m文件改成.mm文件2.引用C++头文件:#include "xxx.h" or#import "xxx.h"3.创建对象CppObject *cppObj = new CppObject();4.释放对象delete cppObj;C++=>OCC++调用OC就不是那么简单了,这里我们利用一个C函数做桥,将OC对象转化为void*类型的指针传入。ObjectOC类如下://ObjectOC.h#import "OBje
摘要由CSDN通过智能技术生成

OC = > C++

1.把调用方的.m文件改成.mm文件

2.引用C++头文件:

#include "xxx.h" 
			or
#import "xxx.h"

3.创建对象

CppObject *cppObj = new CppObject();

4.释放对象

delete cppObj;

C++=>OC

C++调用OC就不是那么简单了,这里我们利用一个C函数做桥,将OC对象转化为void*类型的指针传入。

ObjectOC类如下:

//ObjectOC.h
#import "OBjectInterface.h"
@interface ObjectOC : NSObject
- (void)doSomething:(void*)parameter;
@property interface call;
@end
//ObjectOC.m
void OcObjectDoSomething:(void *caller, void* parameter) {
[(__bridge id)caller doSomething:parameter];
}
@implementation ObjectOC
- ࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 iOS 开发中,TypeScript 和 Objective-C 是两种不同的编程语言。它们都可以用来开发 iOS 应用程序,但是它们的语法和语义是不同的,因此在它们之间进行通信需要一些额外的工作。 一种常见的方法是使用 NativeModules。NativeModules 是 React Native 提供的一种机制,可以让 JavaScript 和原生代码之间进行通信。对于 TypeScript 和 Objective-C 的通信,你可以编写一个 Objective-C 模块,将其导出到 JavaScript 中,并在 TypeScript 中调用该模块。 下面是一个简单的示例: Objective-C 代码: ``` // MyModule.h #import <React/RCTBridgeModule.h> @interface MyModule : NSObject <RCTBridgeModule> @end // MyModule.m #import "MyModule.h" @implementation MyModule RCT_EXPORT_MODULE(); RCT_EXPORT_METHOD(getData:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { // 在这里编写获取数据的代码,并使用 resolve 和 reject 回调函数通知 JavaScript NSArray *data = @[@"John", @"Mary", @"Tom"]; resolve(data); } @end ``` TypeScript 代码: ``` import { NativeModules } from 'react-native'; interface MyModule { getData(): Promise<string[]>; } const MyModule: MyModule = NativeModules.MyModule; MyModule.getData().then(data => { console.log(data); }); ``` 在这个例子中,我们创建了一个名为 `MyModule` 的 Objective-C 模块,它有一个 `getData` 方法,用于获取一些数据。然后,我们使用 `RCT_EXPORT_MODULE()` 将模块导出到 JavaScript 中。在 TypeScript 中,我们通过 `NativeModules` 获取该模块,然后调用 `getData` 方法获取数据。最后,我们使用 `Promise` 实现异步操作,并在获取到数据后打印出来。 需要注意的是,这只是一种方法,还有其他方法可以实现 TypeScript 和 Objective-C 之间通信,具体取决于你的应用程序需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值