Оновлення - відповідно до Xcode 6 Beta 4
iOS 7 та OS X 10.9 мінімальна ціль розгортання
Компілятор Swift і Xcode тепер застосовують мінімальну ціль розгортання iOS 7 або OS X Mavericks. Встановлення більш ранньої цілі розгортання призводить до збою в збірці.
З примітки до випуску Xcode 6
Тож моя попередня відповідь (показана нижче) не буде застосовна до подальшого розвитку. Swift більше не буде доступний для iOS6 та нижче
Додаток Swift можна запустити на iOS 6. Хоча багато людей кажуть, що Swift підтримуватиме лише iOS 7+ та OS X 10.9+, з мого досвіду це не так.
Я протестував просту програму, повністю написану на Swift на пристрої iOS 6. Це прекрасно працює . Як каже 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
.
Тож якщо ви не використовуєте жодних нових API, доданих у складі iOS 8 SDK або деяких спеціальних API API Swift (відповідний API недоступний для Objective-C), ваш додаток буде безперебійно працювати на iOS 6 або пізнішій версії (перевірено та працює), навіть на iOS 5 (не тестується). Більшість API в Swift - це лише заміна існуючих API-програм Objective-C. Насправді вони однакові у бінарному.
Примітка: Відповідно до Xcode 6 beta 4 для швидкого розгортання додатків має бути iOS 7 або OS X 10.9 (див. Вище оновлення). Таким чином, швидкий більше не буде доступний для iOS6 та нижче