美文网首页
swift、oc、c++混编

swift、oc、c++混编

作者: 太空蛙 | 来源:发表于2022-05-23 00:14 被阅读0次

swift不能直接调用c++,需要通过新建oc文件来桥接,并且实际应用场景中一般会涉及到oc和c++的数据传输。
一、用oc重新封装一遍c++中的数据模型

//c++
struct Model {
  int a;
};

//oc
@interface BarcodeResultItem : NSObject
@property (nonatomic, assign) int a;
@end

二、使用NSValue *oc_obj = [NSValue valueWithBytes:&output objCType:@encode(namespace::obj)],但是如果保护struct时要注意其中的坑(NSValue转回c++结构体后会出现释放多次的bug,另外NSValue对应的这块内存上的内容也可能已经被修改了,巨坑!)

std::string和NSString互转
//NSString-->std::string
std::string str = std::string([@"str" UTF8String]);
//std::string--->NSString
NSString *str = [NSString stringWithCString:"c++.string".c_str() encoding:NSUTF8StringEncoding];

相关文章

  • 问题集锦

    OC、C++、Swift混编易遇到如下问题: Use of '@import' when C++ modules ...

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

  • OC和Swift混编二

    Swift工程下混编 OC工程下混编请查看OC和Swift混编一 1.建一个Swift工程命名为SwiftTest...

  • Swift(总)

    Swift目录如下: Objective-C和Swift混编指南-s混编-OC&Swift[https://www...

  • OC与Swift混编 / Mix & Match

    OC与Swift混编 / Mix & Match OC in Swift 通过Header File创建Bridg...

  • C++ (OC) 内存管理 & 智能指针

    前言 现在开发的项目中用到了大部分 C++ 代码,由于 Swift 和 C++ 混编不是很方便, 依然选择用 OC...

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

网友评论

      本文标题:swift、oc、c++混编

      本文链接:https://www.haomeiwen.com/subject/nwblprtx.html