0

我正在尝试将 Objective-C SDK 集成到我的 swift 文件中。但是当我想将 SDK 中的一些文件添加到我的桥接头中时,我收到了这个错误'vector' file not found

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

我发现这些是 C 头文件。SDK提供者给出了一些提示,比如创建一个.mm文件,但他们不知道。

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

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

这是桥接头文件集成

#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

我被这个错误困扰了几天。请帮忙。提前致谢。

4

1 回答 1

0

听起来您在尝试在 Swift 中使用 C++ 代码时遇到了问题。例如,请参阅此答案:Interacting with C++ classes from Swiftvector并且string是标准的 C++ 库头文件。

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

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

于 2019-07-11T00:33:07.973 回答