Aktualisierung - Gemäß Xcode 6 Beta 4
Mindestbereitstellungsziel für iOS 7 und OS X 10.9
Der Swift-Compiler und Xcode setzen jetzt ein Mindestbereitstellungsziel von iOS 7 oder OS X Mavericks voraus. Wenn ein früheres Bereitstellungsziel festgelegt wird, führt dies zu einem Build-Fehler.
Aus den Veröffentlichungshinweisen von Xcode 6
Daher gilt meine vorherige Antwort (siehe unten) nicht mehr für weitere Entwicklungen. Swift wird nicht mehr für iOS 6 und darunter verfügbar sein
Ein Swift-Anwendung kann auf iOS 6 ausgeführt werden. Obwohl viele behaupten, dass Swift nur iOS 7+ und OS X 10.9+ unterstützt, ist dies meiner Erfahrung nach nicht der Fall.
Ich habe eine einfache Anwendung komplett in Swift geschrieben auf einem iOS 6-Gerät getestet. Es funktioniert einwandfrei. Wie Apple sagt, ist Swift-Code binärkompatibel mit Objective-C-Code. Er verwendet den gleichen Compiler und Laufzeitumgebung, um das Binärprogramm zu erstellen.
Hier ist der Code, den ich getestet habe:
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")
}
}
Es handelt sich um eine einfache Anwendung, die nur programmatisch einen Button hinzufügt. Meine Anwendung enthält nur zwei Dateien, AppDelegate.swift
und ViewController.swift
.
Wenn Sie also keine neuen APIs verwenden, die im Rahmen des iOS 8 SDK hinzugefügt wurden oder einige spezifische APIs von Swift (entsprechende API ist nicht für Objective-C verfügbar), wird Ihre Anwendung nahtlos auf iOS 6 oder später (getestet und funktioniert), sogar auf iOS 5 (nicht getestet) funktionieren. Die meisten APIs in Swift sind lediglich der Ersatz für bereits vorhandene Objective-C APIs. Tatsächlich sind sie im Binärformat identisch.
Hinweis: Gemäß Xcode 6 Beta 4 sollte das Bereitstellungsziel für Swift-Anwendungen iOS 7 oder OS X 10.9 sein (siehe die obige Aktualisierung). Daher wird Swift nicht mehr für iOS 6 und älter verfügbar sein