美文网首页iOS学习征服iOSiOS 开发每天分享优质文章
[译文]如何在Objective-C工程中使用Swift

[译文]如何在Objective-C工程中使用Swift

作者: 嫌疑人zx | 来源:发表于2017-01-19 18:11 被阅读292次

原文需要翻墙
传送门:原文地址

苹果在WWDC 2014上发布了全新的开发语言——Swift,这是一种替代Objective-C的全新语言,为了使开发者尽可能无缝的过渡到Swift,苹果为此做了大量工作。 它是如此的好,你可以在同一个项目中使用这两种语言。

OC-Swift.jpeg

1.打开您现有的Objective-C项目

Step01.jpeg

如果你目前还没有一个项目,请随手创建一个新的项目并和我一起做。 我们在这里将其命名为“ObjectiveSpring”。

2.将.swift文件拖放到项目中

Step02.png

如果它要求你添加一个桥接头,除非你打算在Swift项目中来使用你的Objective-C类,否者可以点击NO了。如果你没有一个正经的Swift框架,那么滚动到底部;

小插曲

我在Xcode8中并未遇到弹窗,让添加桥接头,反而遇到一个错误,如下图:

swift_Error.png

我翻译一下这个错误:

“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
“使用旧版Swift语言版本”(SWIFT_VERSION)需要为使用Swift的目标正确配置。 使用[编辑(Edit)>转换(Convert)>到当前Swift语法...]菜单选择Swift版本或使用构建设置编辑器直接配置构建设置。

但是Xcode8支持到最新的Swift3,我使用的第三方库Spring正好是Swift3版本的。所以我并没有按照Xcode的提示去做,我的做法如下图:


解决Error.png

注解:我将use legacy Swift Language Version(使用传统的Swift语言版本)设置成NO;然后问题解决。

如果大家在Xcode8中使用Swift2.2,可以根据Xcode的提示进行设置,如果还是不太明白怎么做,你可以看这篇文章的末尾,跟着图做,很容易的:传送门

下面继续翻译!有问题评论区一起探讨,毕竟有些东西我可能也没有遇到过!

3.在Interface Builder中使用Swift类

Interface Builder中使用Swift.jpeg

Xcode自动扫描您在项目中添加的所有.swift文件,因此您可以在Interface Builder中使用Swift UI组件,而无需额外的步骤。

4.在Objective-C文件(.m)中使用Swift类

如果你试图在代码中使用Swift类,你可能会注意到这样的情况。

使用Swift类Error.jpeg

这是因为我们实际上应该告诉Objective-C导入一个“Umbrella”头,使其可用于您的类。

#import "YourProject-Swift.h"

我又来插话了:
Tip:不是叫大家直接把上面的头文件复制了拷贝进工程!你要把YourProject换成你的工程名,加入我的工程名是ObjectiveSpring,那么我的头文件是:

#import "ObjectiveSpring-Swift.h"

还是截一张图吧!

工程名.png

翻译完了,我要下班了。一不小心写了两个小时~~~
over,走人!

相关文章

网友评论

    本文标题:[译文]如何在Objective-C工程中使用Swift

    本文链接:https://www.haomeiwen.com/subject/kqmibttx.html