ios-如何在Swi中导入现有的Objective C类

我已经在XCode 6.0 DP中弄乱了Swift一会儿,以便在现有项目中使用它。我试图从我的ViewController.swift文件访问MyModel.h(我现有的Objective C模型对象)。 我想导入

#import "MyModel.h"到我的Swift文件。但是我找不到如何做到的。

shah1988 asked 2019-10-09T18:16:27Z
3个解决方案
76 votes

发布答案(如果它可以帮助某些面临相同问题的人)。

我发现iOS开发人员库中提供了一个非常简单的解决方案。 请参考以下链接:

[https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_75]

苹果文档说:

在与您相同的应用目标中导入一组Objective-C文件   Swift代码,您依靠Objective-C桥接标头公开那些   文件到Swift。 当您添加一个Xcode时,它会创建该头文件   将文件快速移动到现有的Objective-C应用程序中,或将Objective-C文件移动到   现有的Swift应用。

因此,我创建了ViewController.swift文件,并仅添加了以下行:

#import "MyModel.h"

现在,它使我可以按如下方式使用我的ViewController.swift中的模型:

var myModel = MyModel()
myModel.name = "My name"
myModel.dobString = "11 March,2013"
println ("my model values: Name: \myModel.name and dob: \myModel.dobString")

供任何试图弄清楚这一点的人参考。 如果必须从头开始创建桥接文件,则还必须在“构建设置”>“ Swift编译器”>“ Objective-C桥接头”中指定其路径。

shah1988 answered 2019-10-09T18:17:23Z
16 votes

在Document中说到快速编程没有import语句。

enter image description here

iPatel answered 2019-10-09T18:17:46Z
6 votes

要导入到Swift应用程序或正在创建混合语言应用程序的Objective C应用程序中,您需要创建桥接标题,您可以引用Apple Docs

它说

无论项目最初是Objective-C还是Swift项目,Objective-C和Swift文件都可以共存于一个项目中。 您可以直接将其他语言的文件直接添加到现有项目中。 这种自然的工作流程使创建混合语言应用程序和框架目标就像创建以单一语言编写的应用程序或框架目标一样简单。

要在与Swift代码相同的应用程序目标中导入一组Objective-C文件,您需要依靠Objective-C桥接标头将这些文件公开给Swift。 当您将Swift文件添加到现有的Objective-C应用程序或将Objective-C文件添加到现有的Swift应用程序时,Xcode会创建此头文件。

编辑:我为您的帮助创建了代码,您可以在此处找到

Rohit answered 2019-10-09T18:18:36Z
translate from https://stackoverflow.com:/questions/24034409/how-to-import-existing-objective-c-classes-in-swift