ios – 在Swift应用程序中使用Obj-C子项目

前端之家收集整理的这篇文章主要介绍了ios – 在Swift应用程序中使用Obj-C子项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的团队有一些完整的Obj-C库,我们喜欢在我们的项目中重用.为此,我们通常设置一个git子模块,然后将其作为子项目添加xcode项目中(使用目标依赖项,链接二进制文件库并更新用户标题搜索路径)

到目前为止,它只在完整的Obj-C项目中完成,我现在正尝试在Swift项目中使用它,但迄今为止收效甚微.我试图添加briding-header文件,在项目中引用它并填充它如下:

#import "MyLibraryHeader.h"

目标标题位于用户标题搜索路径中.

它让我构建,但在我的Swift文件中使用它时:

let test = MyLib();
    let secondTest = MyLib.classMethod1("some_arguments");

我在secondTest上得到一个EXC_BAD_INSTRUCTION,以及调试器中的以下日志:

(lldb) po test
error: <EXPR>:1:1: error: use of unresolved identifier 'test'

(lldb) po secondTest
error: Error in auto-import:
Failed to get module 'MyProject' from AST context:
/Users/siegele/Sources/MyProject_iOS/MyProject/Classes/MyProject-Bridging-Header.h:12:9: error: 'MyLibraryHeader.h' file not found
#import "MyLibraryHeader.h"
        ^
Failed to import bridging header '/Users/siegele/Sources/MyProject_iOS/MyProject/Classes/MyProject-Bridging-Header.h'

发现以下问题没有答案:Xcode 6 crashing when using Objective-C subproject inside Swift

任何帮助,将不胜感激.

解决方法

我按照可以在这里找到的HockeyApp教程:
http://support.hockeyapp.net/kb/client-integration-ios-mac-os-x/integrate-hockeyapp-for-ios-as-a-subproject

最后,我在正确的轨道上,但搞砸了标题搜索路径:

>将子项目xcodeproj添加到工作区>在主项目上:将二进制文件与库链接,并添加子项目产品库(奖励点:也将其添加为目标依赖项)>相应地更新标题搜索路径(不是用户标题搜索路径)>在主项目Bridging-Header.h文件中导入Library.h

猜你在找的Xcode相关文章