我可以将现有Objective C项目中的类导入Swift应用程序

时间:2015-01-27 11:00:53

标签: objective-c swift module

我有一个现有的应用程序,我想在新的应用程序目标中共享该应用程序中的大量类。我希望将现有应用保留原样,并将其视为一个模块(如框架),将其导入到将以Swift编写的新应用目标中。

请注意,这不是将Swift代码添加到现有Objective-C应用程序目标的简单文档。我想看一个使用Xcode中的模块功能重新使用新Swift目标/模块中现有目标的代码的示例。

现有应用程序是作为Objective-C应用程序(不是框架)构建的

我想在Swift中构建一个新的应用程序,但是使用Swift应用程序中旧应用程序的一些非gui代码。

我已多次尝试过查看是否有一种方法可以从旧的iOS-objc应用程序导入类但我在新的Swift应用程序目标中使用它时遇到困难,方法无法找到

我在此源应用中打开了模块。

A)我最好从项目中的现有App目标导入类,而不重构原始应用程序。

B)如果那是不可能的,我可能会将共同的类分解到一个单独的objective-c框架中。由于这个问题我可以开始工作(http://youtu.be/9us3uijFFpo),但我想看一个A)的例子,如果有人可以破解它。该用例未在Apple的文档中介绍。

但是我已经在网上搜索了,我找不到任何有关如何做到这一点的详细示例,而且我做了很多次尝试都没有成功。有很多引用将Swift文件添加到Obj-C应用程序中,但没有具体关于这种情况。

1 个答案:

答案 0 :(得分:0)

你应该阅读"混合搭配"来自Apple的这本书: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

它向您展示了如何将目标类导入swift项目。 一般来说,你必须采取一些步骤:

  
      
  • 添加" Bridging-Header.h"到您的项目名称:" YourProjectName-Bridging-Header.h"
  •   
  • 将Obc标题放在某处,然后将ObjcClass.h导入到您的项目中。我建议使用"链接到文件"而不是"复制到   项目"
  •   
  • 在您的桥接头文件中,添加#import" ObjcClass.h"将您的ObjcClass标头导入您的swift项目
  •   
  • 您最终可能必须在"构建设置"
  • 中指定标题位置