Xcode 在iOS Cocoa静态库项目中使用Objective-C代码,在iOS应用程序项目中使用Swift代码

Xcode 在iOS Cocoa静态库项目中使用Objective-C代码,在iOS应用程序项目中使用Swift代码,xcode,swift,import,static-libraries,xcode6.1,Xcode,Swift,Import,Static Libraries,Xcode6.1,我正在寻找一个简单的程序,用于将共享库项目中的Objective-C代码与应用程序项目中的Swift代码相结合,但迄今为止,该程序尚未成功: 启动Xcode 6.1.1 创建工作区测试 创建静态库项目TestLibrary并将其添加到工作区 创建iOS单视图应用程序项目测试(语言:Swift)并将其添加到工作区 将导入测试库添加到ViewController.swift 如果我现在构建测试,我会在ViewController.swift中收到此错误:没有这样的模块:“TestLibrary” 大

我正在寻找一个简单的程序,用于将共享库项目中的Objective-C代码与应用程序项目中的Swift代码相结合,但迄今为止,该程序尚未成功:

  • 启动Xcode 6.1.1
  • 创建工作区测试
  • 创建静态库项目TestLibrary并将其添加到工作区
  • 创建iOS单视图应用程序项目测试(语言:Swift)并将其添加到工作区
  • 将导入测试库添加到ViewController.swift
  • 如果我现在构建测试,我会在ViewController.swift中收到此错误:
    没有这样的模块:“TestLibrary”

    大概必须克服两个障碍:

  • 告诉TestLibrary应该“导出”TestLibrary.h。添加(大概)所需文件的正确语法和过程是什么
  • 告诉测试TestLibrary位于何处。由于应用程序和静态库项目都属于同一个工作区(并且彼此相邻地位于文件系统中),我假设不需要显式步骤,或者是否存在

  • 总之,我的问题是:即使我随后将
    let test=TestLibrary()
    添加到ViewController.swift,我如何克服构建错误,即test(swift代码库)如何利用TestLibrary(Objective-C代码库)?

    此过程似乎有效(对于单个应用程序目标):

  • 不要添加
    import TestLibrary
    ,因为Swift和Objective-C代码将驻留在同一个应用程序目标中
  • 创建测试桥接头.h以测试并添加
    #导入“TestLibrary/TestLibrary.h”
  • 设置生成设置
    Objective-C桥接头:测试/测试桥接头.h
    用于测试
  • 将libTestLibrary.a从TestLibrary(在产品下)拖动到带有二进制文件的测试链接库中(在构建阶段下)
  • 在ViewController.swift中添加
    let test=TestLibrary()

  • 瞧…

    在我的例子中,我必须在桥接文件中添加框架的所有.h文件,这解决了问题。同时从swift文件中删除import TestLibrary