更新 - 根据 Xcode 6 Beta 4
iOS 7 和 OS X 10.9 最低部署目标
Swift 编译器和 Xcode 现在强制要求 iOS 7 或 OS X 的最低部署目标
小牛队。设置较早的部署目标会导致构建失败。
From Xcode 6 release note
所以我之前的回答(如下所示)将不适用于任何进一步的发展。 Swift 将不再适用于 iOS6 及更低版本
Swift 应用程序可以在 iOS 6 上运行。尽管很多人都说 Swift 将只支持 iOS 7+ 和 OS X 10.9+,但根据我的经验并非如此。
我已经在 iOS 6 设备上测试了一个完全用 Swift 编写的简单应用程序。它工作得很好。正如 Apple 所说,Swift 代码与 Objective-C 代码是二进制兼容的。它使用相同的编译器和运行时来创建二进制文件。
这是我测试过的代码:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton.buttonWithType(UIButtonType.System) as UIButton
button.frame = CGRectMake(100, 100, 100, 50)
button.backgroundColor = UIColor.greenColor()
button.setTitle("Test Button", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
}
func buttonTapped(sender: UIButton!) {
println("buttonTapped")
}
}
这是一个简单的应用程序,只需以编程方式添加一个按钮。我的应用程序只包含两个文件,AppDelegate.swift 和 ViewController.swift。
因此,如果您不使用作为 iOS 8 SDK 的一部分添加的任何新 API 或某些 Swift 特定 API(相应的 API 不适用于 Objective-C),您的应用程序将在 iOS 6 或更高版本上无缝运行(经过测试并正常运行),即使在 iOS 5(未经测试)上也是如此。 Swift 中的大多数 API 只是现有 Objective-C API 的替代品。实际上它们在二进制中是相同的。
注意:根据 Xcode 6 beta 4 的 swift 应用程序部署目标应该是 iOS 7 或 OS X 10.9(参见上面的更新)。所以 swift 将不再适用于 iOS6 及更低版本