我正在尝试将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
这个错误持续了几天。请帮忙。预先感谢。
答案 0 :(得分:0)
听起来您在尝试在Swift中使用C ++代码时遇到了问题。例如,请参见以下答案:Interacting with C++ classes from Swift。 vector
和string
是标准的C ++库标头。
此外,在Google和StackOverflow中进行诸如use c++ in swift
,call c++ from swift
等的搜索,应提供足够的示例来说明如何处理此问题。
简而言之,一种方法是编写一个Objective-C ++包装器。扩展名为.mm
的实现文件将是Objective-C和C ++代码的混合,即,这些文件中的代码可以调用C ++ API。但是,通过桥接标头对Swift可见的函数不应将C ++类型用作参数或返回值。