首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们能否在部署目标小于iOS 7的应用程序中集成swift代码?

我们能否在部署目标小于iOS 7的应用程序中集成swift代码?
EN

Stack Overflow用户
提问于 2014-06-04 12:48:04
回答 7查看 2.4K关注 0票数 11

由于Swift支持目标c的混合匹配,那么我们可以使用它来构建部署目标小于iOS 7的应用程序吗?

在基本设置部分下的Swift预发布文档中,我所读到的是:

代码语言:javascript
复制
Swift is designed to provide seamless compatibility with Cocoa and Objective-C. You can use Objective-C APIs
(ranging from system frameworksto your own custom code) in Swift, and you can use Swift APIsin Objective-C.
This compatibility makes Swift an easy, convenient, and powerful tool to integrate into your Cocoa app
development workflow.
This guide covers three important aspects of this compatibility that you can use to your advantage when
developing Cocoa apps:

 ● Interoperability lets you interface between Swift and Objective-C code, allowing you to use Swift classes
in Objective-C and to take advantage of familiar Cocoa classes, patterns, and practices when writing Swift
code.

 ● Mix and match allows you to create mixed-language apps containing both Swift and Objective-C files that
can communicate with each other.
 ● Migration from existing Objective-C code to Swift is made easy with interoperability and mix and match,
making it possible to replace parts of your Objective-C apps with the latest Swift features.

,在读完这篇文章之后,我脑海中浮现的问题是

  1. 我们能不能使用我们目前正在开发的应用程序?
  2. 如果答案是否定的,那么它将与上述解释相矛盾。
EN

回答 7

Stack Overflow用户

发布于 2014-06-04 13:51:12

更新-根据Xcode 6 Beta 4

iOS 7和OS 10.9最低部署目标 Swift编译器和Xcode现在强制执行iOS 7或OS的最低部署目标。设置较早的部署目标将导致生成失败。

来自Xcode 6发行说明

因此,我先前的回答(如下所示)将不适用于任何进一步的快速发展。Swift将不再适用于iOS6和以下

是的,你可以。我已经测试了一个简单的应用程序,它完全用Swift编写在我的iOS6 device中,它的工作非常好。正如苹果所言,Swift代码与ObjectiveC代码是二进制兼容的。它使用相同的编译器和运行时来创建二进制文件。

因此,如果您没有使用作为iOS8 SDK的一部分添加的任何新api,或者使用某些快速的特定api(对应的api不适用于ObjectiveC),您的应用程序将无缝地在iOS6+(测试和工作)甚至iOS5(未测试)上工作。swift中的大多数api只是替换现有的ObjectiveC api,实际上它们在二进制文件中是相同的。

票数 7
EN

Stack Overflow用户

发布于 2014-06-04 12:58:43

我不确定,但是的,不仅支持Xcode Beta中的较低版本的ios,如果您正在为选择的部署目标签入Project-->Target-->General-->Deplyment Info,则有6.0、6.1、7.0、7.1和8.0的下拉菜单。

所以我认为是的快速支持较低版本。

我只是测试在Xcode6中创建的带有快速语言select的演示。然后,我使用部署目标6将这个项目打开到Xcode5,这意味着也可以使用更低的版本。

这里是使用ios6.1模拟器在xcode5中快速运行项目的屏幕截图:

这里是演示以及5

票数 2
EN

Stack Overflow用户

发布于 2014-08-19 09:24:19

是的你可以。我在我的iOS6设备中测试了一个用Swift语言编写的简单应用程序,它运行得非常好。正如苹果所言,Swift代码与ObjectiveC代码是二进制兼容的。它使用相同的编译器和运行时来创建二进制文件。

因此,如果您没有使用任何作为iOS8 SDK的一部分添加的新api,或者使用一些快速的特定api(对应的api不适用于ObjectiveC),那么您的应用程序将无缝地在iOS6+(测试和工作)上工作,甚至在iOS5(未测试)上工作。swift中的大多数api只是替换现有的ObjectiveC api,实际上它们在二进制文件中是相同的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24037904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档