迅速发生表格C头文件“找不到'vector'文件”错误

时间:2019-07-10 05:06:41

标签: ios objective-c swift c-header

我正在尝试将Objective-C SDK集成到我的swift文件中。但是,当我要将SDK中的某些文件添加到我的 Bridging Header (桥接头)中时,出现此错误'vector'文件未找到

如果我想将其他文件添加到swift标头中,也会得到找不到字符串文件

我发现这些是C头文件。 SDK提供商提供了一些提示,例如创建 .mm 文件,但是他们却不知道如何。

我尝试添加所有C或C ++支持文件,例如 libstdc ++。6.tbd,libstdc ++。6.0.9.tbd,libstdc ++。6.0.9.dylib,libstdc ++。6.dylib,libstdc ++。dylib < / strong>,但没有任何改变。

这是错误 https://pasteboard.co/InhuW5K.png

这是 Bridging Header 文件集成

#ifndef IOT_Demo_Bridging_Header_h
#define IOT_Demo_Bridging_Header_h //#ifndef ObjectiveCHeader_h //#define ObjectiveCHeader_h

#import <LCOpenSDKDynamic/LCOpenSDK_Api.h> //#import "../Depend/LCOpenSDK/LCOpenSDK_Api.h"
#import <LCOpenSDKDynamic/LCOpenSDK_AudioTalk.h>
#import <LCOpenSDKDynamic/LCOpenSDK_PlayWindow.h>
#import <LCOpenSDKDynamic/LCOpenSDK_EventListener.h>
#import <LCOpenSDKDynamic/LCOpenSDK_TalkerListener.h>
#import <LCOpenSDKDynamic/DeviceList.h>
#endif

这个错误持续了几天。请帮忙。预先感谢。

1 个答案:

答案 0 :(得分:0)

听起来您在尝试在Swift中使用C ++代码时遇到了问题。例如,请参见以下答案:Interacting with C++ classes from Swiftvectorstring是标准的C ++库标头。

此外,在Google和StackOverflow中进行诸如use c++ in swiftcall c++ from swift等的搜索,应提供足够的示例来说明如何处理此问题。

简而言之,一种方法是编写一个Objective-C ++包装器。扩展名为.mm的实现文件将是Objective-C和C ++代码的混合,即,这些文件中的代码可以调用C ++ API。但是,通过桥接标头对Swift可见的函数不应将C ++类型用作参数或返回值。