我们可以在部署目标不足iOS 7的应用程序中集成swift代码吗?

由于Swift支持与目标c的混合匹配,那么我们可以使用它来构build具有低于iOS 7的部署目标的应用程序。

从Swift预发行文档在基本设置部分我读的是:

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. 我们可以使用swift来处理当前正在处理的应用程序。
  2. 如果答案是否定的,则与上面的解释是矛盾的。

更新 – 根据Xcode 6 Beta 4

iOS 7和OS X 10.9最低部署目标

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

从Xcode 6发行说明

所以我以前的回答(如下所示)将不适用于任何进一步的快速发展。 Swift将不再适用于iOS6及更低版本


是的,你可以 。 我testing了一个简单的应用程序完全写在我的iOS6 deviceSwift中,它工作得很好。 正如苹果所说,Swift代码与ObjectiveC代码是二进制兼容的。 它使用相同的编译器和运行时来创build二进制文件。

因此,如果您没有使用作为iOS8 SDK的一部分添加的新API或某些快速的特定api(对应的API不适用于ObjectiveC),您的应用程序将在iOS6 +(testing和工作)甚至iOS5(未testing)上无缝工作。 swift中的大部分API只是现有ObjectiveC API的替代品。 实际上它们在二进制中是一样的。


我不知道,但是快速支持低版本的ios到Xcode Beta如果你是检查Project-->Target-->General-->Deplyment Info的select部署目标有6.0,6.1下拉, 7.0,7.1和8.0

在这里输入图像说明

在这里输入图像说明

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

我只是用swift语言selecttesting在Xcode6中创build的演示。 那么我打开这个项目的Xcode5与部署目标6,运行它意味着与低版本也工作。

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

在这里输入图像说明

在这里它是好的http://www.filedropper.com/demo_5

是的你可以 。 我testing了一个简单的应用程序完全写在我的iOS6设备在Swift中,它工作得很好。 正如苹果所说,Swift代码与ObjectiveC代码是二进制兼容的。 它使用相同的编译器和运行时来创build二进制文件。

因此,如果您没有使用作为iOS8 SDK的一部分添加的新API或某些快速的特定api(对应的API不适用于ObjectiveC),您的应用程序将在iOS6 +(testing和工作)甚至iOS5(未testing)上无缝工作。 swift中的大部分API只是对现有的ObjectiveC API的replace。 实际上它们在二进制中是一样的。

不,只有iOS 7+和OS X 10.9+。

您可以像这样从Objective-C导入和运行swift代码:

 #import “ProductModuleName-Swift.h” MySwiftClass *swiftObject = [[MySwiftClass alloc] init]; [swiftObject swiftMethod]; 

你可以用这个要点来检查iOS的版本号,如果版本大于7.0,只能运行swift代码。

是的,使用Swift语言的Xcode 6的最低部署目标是iOS 6.0

是的你可以。 你用哪种语言编写代码并不重要。 最后重要的是编译器和体系结构。 所以,你一定能够将它们部署到OS版本低于7.0