Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift应用程序中使用Obj-C子项目_Ios_Xcode_Swift_Ios8_Xcode6 - Fatal编程技术网

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

Ios 在Swift应用程序中使用Obj-C子项目,ios,xcode,swift,ios8,xcode6,Ios,Xcode,Swift,Ios8,Xcode6,我的团队有几个完整的Obj-C库,我们喜欢在项目中重用它们。为此,我们通常设置一个git子模块,然后将其作为子项目添加到xcode项目中(使用目标依赖关系,将二进制文件链接到库中,并更新用户标题搜索路径) 到目前为止,它只在完整的Obj-C项目中完成,我现在尝试在Swift项目中使用它,但迄今为止几乎没有成功。我试图添加briding头文件文件,在项目中引用它,并像这样填充它: #import "MyLibraryHeader.h" 目标标头位于用户标头搜索路径中 它允许我构建,但在我的Swi

我的团队有几个完整的Obj-C库,我们喜欢在项目中重用它们。为此,我们通常设置一个git子模块,然后将其作为子项目添加到xcode项目中(使用
目标依赖关系
将二进制文件链接到库中
,并更新
用户标题搜索路径

到目前为止,它只在完整的Obj-C项目中完成,我现在尝试在Swift项目中使用它,但迄今为止几乎没有成功。我试图添加
briding头文件
文件,在项目中引用它,并像这样填充它:

#import "MyLibraryHeader.h"
目标标头位于
用户标头搜索路径中

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

    let test = MyLib();
    let secondTest = MyLib.classMethod1("some_arguments");
我在
secondTest
上得到一条
EXC\u BAD\u指令,调试器中有以下日志:

(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'
(lldb)po测试
错误::1:1:错误:使用未解析的标识符“test”
(lldb)采购订单第二次测试
错误:自动导入时出错:
无法从AST上下文获取模块“MyProject”:
/Users/siegele/Sources/MyProject\u iOS/MyProject/Classes/MyProject桥接头。h:12:9:错误:“找不到MyLibraryHeader.h”文件
#导入“MyLibraryHeader.h”
^
未能导入桥接头“/Users/siegele/Sources/MyProject\u iOS/MyProject/Classes/MyProject桥接头.h”
发现以下问题,但没有答案:


任何帮助都将不胜感激。

我遵循了HockeyApp教程,可以在这里找到:

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

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

  • 让我有一段时间不高兴的是Objective-C桥接头的Swift编译器设置没有自动设置。检查目标的生成设置,确保“Objective-C桥接头”设置不为空

    您确定
    MyProject桥接头.h
    文件名与hour plist文件中的桥接头文件名匹配吗?是的,如果Xcode在生成设置中找不到引用的文件,则不会生成该文件。你说的是plist,但它不是我应该添加它的地方,是吗?在XCode 6.1.1中对我有用的一个次要解决方法是键入:po打印(测试)