【发布时间】:2014-11-28 04:25:35
【问题描述】:
我的团队有一些完整的 Obj-C 库,我们希望在我们的项目中重用它们。为此,我们通常设置一个git子模块,然后将其作为子项目添加到xcode项目中(使用target dependency,link binary with library并更新User Header Search Paths)
到目前为止,它只在完整的 Obj-C 项目中完成,我现在正尝试在 Swift 项目中使用它,但迄今为止收效甚微。我尝试添加briding-header 文件,在项目中引用它并像这样填充它:
#import "MyLibraryHeader.h"
目标标头位于User Header Search Paths。
它可以让我构建,但是在我的 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
任何帮助将不胜感激。
【问题讨论】:
-
您确定
MyProject-Bridging-Header.h文件名与小时plist 文件中的桥接头文件名匹配吗? -
是的,如果 Xcode 在构建设置中找不到引用的文件,它就不会构建。你说 plist 但它不是我应该添加的地方,是吗?
-
在 XCode 6.1.1 中对我有用的一个小解决方法是输入:po print(test)
标签: ios xcode swift ios8 xcode6