【问题标题】:Importing Objective-c framework in Swift?在 Swift 中导入 Objective-c 框架?
【发布时间】:2017-08-21 09:49:59
【问题描述】:

我正在尝试将objective-c 库导入swift。我创建了一个桥接文件(a .h)并将其添加到构建设置中,位于 Swift Compiler - General 下的 Objective-C Bridging Header 中。在我添加的桥接文件中#import <MyFramework>

问题来了。这个框架是私有的和特殊的。为了在 Objective-C 中正确安装它,他们告诉你将 main.m 更改为 main.mm(这在 swift 中没有意义)。

当我尝试构建项目时,我收到 111 错误(Apple Mach-O 链接器错误)。开头是:

Undefined symbols for architecture x86_64:

所有错误都类似于:

std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__grow_by(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)", referenced from:

所以我真的不明白。你知道为什么会这样吗?

如果您需要我发布更多信息,请告诉我。

感谢您的帮助。

【问题讨论】:

  • @macroland 我不这么认为。我在另一个项目中使用过它,在 Objective-C 中,它工作正常。

标签: objective-c swift frameworks


【解决方案1】:

.mm 扩展名用于使用 c++ 代码。std :: 是 c++ 代码。您只需将 yourBridgingHeaderFile.m 编辑为 YourBridingHeaderName.mm 就可以了

【讨论】:

  • 好吧,我真的迷路了。这行得通!感谢您的帮助。
  • 我很高兴能帮上忙 :)
猜你喜欢
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2018-09-17
  • 1970-01-01
  • 2015-09-14
  • 2018-07-02
  • 1970-01-01
  • 2017-01-27
相关资源
最近更新 更多