将iOS Cocoa静态库项目中的Objective-C代码与iOS应用程序项目中的Swift代码一起使用

德鲁克斯

我正在寻找一个简单的过程,用于将共享库项目中的Objective-C代码与应用程序项目中的Swift代码结合起来,但是到目前为止,此序列没有成功:

  1. 启动Xcode 6.1.1
  2. 创建工作区测试
  3. 创建iOS Cocoa Touch静态库项目TestLibrary并将其添加到工作区
  4. 创建iOS Single View Application项目Test(语言:Swift)并将其添加到工作区
  5. 添加import TestLibrary到ViewController.swift

如果现在构建Test,则会在ViewController.swift:中收到此错误No such module: ‘TestLibrary’

大概必须克服两个障碍:

  1. 告诉TestLibrary应该“导出” TestLibrary.h。添加(大概)所需的桥接头文件的正确语法和过程是什么?
  2. 告诉Test TestLibrary所在的位置。由于应用程序和静态库项目都属于同一工作空间(并且位于文件系统中彼此相邻),因此我认为不需要明确的步骤,或者存在吗?

因此,总而言之,我的问题是:即使随后将其添加let test = TestLibrary()到ViewController.swift中,如何也能克服构建错误,即Test(Swift代码库)如何利用TestLibrary(Objective-C代码库)?

德鲁克斯

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

  1. 不要添加import TestLibrary,因为Swift和Objective-C代码都将驻留在同一个应用程序目标中
  2. 创建Test-Bridging-Header.h进行测试并添加 #import "TestLibrary/TestLibrary.h"
  3. 设置Objective-C Bridging Header: Test/Test-Bridging-Header.h测试的构建设置
  4. 将libTestLibrary.a从TestLibrary(在“产品”下)拖到带有二进制文件的Test的链接库中(在“构建阶段”下)
  5. 在ViewController.swift中添加let test = TestLibrary()例如内部viewDidLoad

瞧...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Xcode项目重用到新项目中?静态库,框架,目标?

将Swift集成到导出的Unity项目中,而不是使用Objective C?

Xamarin:如何从iOS库项目中加载图像

当iOS和OS X应用程序位于同一项目中时,集成Fabric / Crashlytics

在Swift项目中使用Objective-C代码,该项目同时使用Swift代码

项目中多个iOS应用程序的Firebase动态链接

iOS-是否可以在一个项目中合并Swift 3和Swift 4代码?

如何将unity ios项目集成到本机ios swift项目中?

如何在iOS Swift项目中实现向下箭头/插入符号(例如在iOS 9音乐应用程序中)?

如何将Android应用程序添加到iOS应用程序中已在使用的现有Firebase项目中?

C项目中的C ++静态库链接

在UWP项目中是否可以将MVVM Light与Entity Framework Core一起使用?

在Xamarin iOS项目中使用Swift框架内的Objective C框架

如何在C ++项目中使用Swift静态库(.a)?

如何从iOS项目中读取图像以设置为HTML嵌入代码在iOS项目中

将Box IOS SDK集成到我的ios项目中

如何在橡皮筋项目中使用Makefile.ios创建静态库

无法将Objective C文件包含到项目中吗?

将Linphone集成到自己的iOS项目中

在非Web项目中仅将tapestry-jpa与tapestry-ioc一起使用

iOS Objective-C:如何在Xcode项目中同时具有启动xib文件和静态启动图像?

在Swift项目中添加Objective-C库会增加应用程序的大小吗?

将静态文件放在Django应用或项目中的位置

如何正确地将 C++ 静态库包含到 iOS 项目中

Objective C 项目中 ScrollableGraphicView Swift 库的问题

如何在 iOS 项目中构建和使用 C 库?

我需要设置哪个 iOS 目标以避免将 Swift 运行时库与我的 iOS 应用程序捆绑在一起?

从 iOS 11+ 项目中删除 SceneDelegate 的正确方法 - 应用程序中需要哪些代码(_:didFinishLaunchingWithOptions)

如何在 iOS 项目中定义预处理器标志并在 Swift 代码中使用它?