Anfang dieses Jahres stellten Apple-Führungskräfte Swift vor, das Objective-C als Programmiersprache der Wahl für Macs und iOS-Geräte ersetzen soll. Während Objective-C weiterhin beliebt ist, beschweren sich Entwickler häufig darüber, wie schwierig es zu verwenden ist; Swifts Funktionen werden angeblich zumindest einige dieser Probleme beseitigen.
Trotz der Benutzerfreundlichkeit müssen Entwickler noch einige Zeit damit verbringen, die Funktionsweise der Sprache zu erlernen. Dies ist der erste von wenigen Artikeln, die zeigen, wie iOS-Apps mit Swift programmiert werden.
Klicken Sie hier, um Swift-Entwicklungsjobs zu finden.
Voraussetzungen
Sie benötigen einen Mac, auf dem OS X Mavericks ausgeführt werden kann. Zum Zeitpunkt des Schreibens können Sie nur in Swift programmieren, wenn Sie ein registrierter iOS-Entwickler sind. Um Swift-Apps zu entwickeln und auszuführen, sollten Sie über iOS 8 und Version 6 von Apples IDE Xcode verfügen. (Sie müssen ein registrierter Entwickler sein, um Ihre Swift-Apps auf Ihrem iPhone zu testen, obwohl Sie keiner sein müssen, um dieselben Apps auf einem iPhone- oder iPad-Emulator zu erstellen und auszuführen.)
Für die Zwecke dieses Tutorials verwende ich eine Beta-Version von XCode 6 (zum Zeitpunkt des Schreibens, jetzt bis zu GM Seed). Bevor wir beginnen, laden Sie bitte die Projektdateien herunter und installieren Sie sie (wenn Sie ein registrierter Apple-Entwickler mit der neuesten Xcode-Beta sind). Öffnen Sie danach die Projektdateien und laden Sie sie in Xcode.
Was ist in einer Swift-App?
Um eine Swift-App zu erstellen, erstellen Sie zunächst ein Xcode-Projekt und wählen Swift als Sprache aus. Nach dem Ausfüllen einiger Details erstellt die Software ein Projekt, das ich in meinem Fall FirstExample genannt habe. Es enthält zwei Quellcode-Dateien zu starten, sowie zwei Info.plist-Dateien, die Informationen zu Ihrer App enthalten, und eine Storyboard-Datei (die wir für dieses Beispiel nicht benötigen).
Diese Assets sind das Minimum, das Sie benötigen, um eine App zu erstellen, die ausgeführt werden kann. Aber wenn Sie es zu Beginn ausführen, erhalten Sie nur einen leeren Bildschirm — Sie müssen mehr Code hinzufügen, damit es etwas tut. Wir werden bald zu diesem Teil kommen.
Laden Sie Ihren Lebenslauf HocharBeitgeber möchten Kandidaten wie Sie. Laden Sie Ihren Lebenslauf hoch. Zeig ihnen, dass du großartig bist.
Andere Vorbereitungen
Wenn Sie mitverfolgen und eine neue App erstellt haben, wird es ein Main geben.storyboard-Datei in der Liste Projektdateien. Bitte löschen Sie es und bearbeiten Sie die Informationen.plist-Datei. Entfernen Sie den Schlüssel, der mit „Main storyboards file name“ beginnt.“
Die beiden Quellcodedateien sind AppDelegate.swift und ViewController.rasch. In iOS ist ein Delegat eine Klasse, die etwas im Namen einer anderen Klasse ausführt, und das AppDelegate ist ein Ort, an dem spezielle UIApplication-Zustände behandelt werden. Es hat eine Reihe von Funktionen, die von iOS aufgerufen werden. Wenn Ihre App beispielsweise verwendet wird und das Telefon klingelt, wird die Funktion applicationWillResignActive aufgerufen. Hier sollten Sie Aufgaben anhalten, Timer deaktivieren usw.
Hier ist eine Liste der Funktionen, die in AppDelegate stubbed sind.rasch. Wenn Ihre Anwendung die Hintergrundverarbeitung unterstützt, wird applicationDidEnterBackground aufgerufen, andernfalls applicationWillTerminate . Diese Funktionen sind Orte, um Code zum Speichern von Daten hinzuzufügen, aber wir werden nur den ersten verwenden:
func applicationWillResignActive(application: UIApplication)
func applicationDidEnterBackground(application: UIApplication)
func applicationWillEnterForeground(application: UIApplication)
func applicationDidBecomeActive(application: UIApplication)
func applicationWillTerminate(application: UIApplication)
Wenn die erste Funktionsdefinition NSObject: AnyObject , ändern Sie sie so, dass sie NSObject: NSDictionary lautet. Dies ist die Funktion, zu der wir Code hinzufügen müssen. Das -> Bool bedeutet, dass es einen bool-Wert zurückgibt, dh true oder false. Wenn beim Starten der App in Ihrem Code etwas schief geht, wird „false“ zurückgegeben (in unserem Fall jedoch immer true ).
Hinzufügen von Code zu AppDelegate.swift
Dies ist, was die ganze AppDelegate.swift-Datei aussehen sollte. Ich habe Kommentare entfernt, um es kurz zu halten:
In Swift erstellen Sie eine Instanz einer Klasse wie diese: window = UIWindow( .. ), um eine Instanz von UIWindow zu erstellen. Dies ist nur ein übergebener Parameter mit dem Namen frame mit dem Wert UIScreen .Hauptbildschirm ().Grenzen, die die Größe des gesamten Bildschirms angibt. Beachten Sie, dass window in der Klasse als UIWindow definiert ist?. Das Fragezeichen bedeutet, dass es sich um einen optionalen Typ handelt und dass der Wert abwesend oder vorhanden sein kann; Dies ähnelt einem Nullwert in anderen Sprachen, funktioniert jedoch für alle Typen, nicht nur für Klassen.
Das if let window = prüft, ob das Fenster vorhanden ist und entpackt das Fenster (welches ist vom Typ UIWindow?), damit die UIWindow-Eigenschaften und -Methoden verwendet werden können. Versuchen Sie, die Zeile „if let“ und das entsprechende „}“ (mit // ) auszukommentieren, und Sie erhalten drei ähnliche Kompilierungsfehler, wobei der erste besagt, dass backgroundColor kein Mitglied von UIWindow ? Es ist ein Mitglied von UIWindow, also von UIWindow ? Zu UIWindow muss es ausgepackt werden; fügen Sie ein „!“ am Ende des Variablennamens, um es auszupacken (Fenster!.backgroundColor = funktioniert). Davon abgesehen, ohne das Auspacken von „if let“, jedem Fenster.referenz im Block müsste auch Fenster sein!. „If let“ macht alle drei auspacken.
Die Zeilen in dieser Anweisung setzen ViewController als Root-View-Controller, der als erster erstellt wird. Die von Ihnen implementierten Ansichtscontroller steuern die gesamte Navigation Ihrer App. Apples About View Controller ist lesenswert, wenn Sie das gesamte Konzept verstehen wollen; In diesem Fall werden wir jedoch nur ein Beispiel behandeln. Aber was genau macht ein View Controller?
Was ist ein View Controller?
Der Bildschirmbereich eines iOS-Geräts wird von einem oder mehreren View Controllern verwaltet, die sowohl zum Navigieren zwischen Formularen als auch zum Verwalten von Ansichten in einem bestimmten Formular verwendet werden. Eine Ansicht ist eine Instanz einer UIView oder einer Unterklasse einer UIView und verwaltet einen rechteckigen Bereich im Formular. Wenn das Formular einem stationären Büro entspricht, sind die Formularansichtscontroller die Manager in diesem Büro, und die Ansichten sind die Mitarbeiter, die die Arbeit tatsächlich ausführen.
Jedes Formular in einer App wird von einem und (manchmal mehr) View Controllern verwaltet. Wenn ein Formular einen festen Teil und einen Bildlaufteil hat, können Sie für jeden Teil einen anderen Ansichtscontroller verwenden.
In dieser App gibt es einen View-Controller für die Steuerelemente und einen, der die Popup-Warnung verwaltet, wenn Sie auf die Schaltfläche klicken.
Der Hauptansichts-Controller in meiner App verfügt über eine Ansicht, die aus einer Beschriftung (UILabel), einem Textbearbeitungsfeld (UITextField) und einer Schaltfläche (UIButton) besteht. Wenn Sie die App ausführen, geben Sie Text in das Textbearbeitungsfeld ein und klicken Sie dann auf die Schaltfläche. Dadurch wird eine Warnmeldung angezeigt, in der der von Ihnen eingegebene Text angezeigt wird:
Sie können den Benutzerfluss durch Ihre App auch mithilfe von Storyboards visuell gestalten, die auf weniger Code angewiesen sind und helfen, Fehler zu beseitigen, die Sie beim manuellen Verwalten von View Controllern im Code erhalten würden. In diesem Beispiel wird jedoch alles im Code in ViewController erstellt.rasch.
Ansichten und Ansichtscontroller
Jeder Ansichtscontroller verfügt über eine Ansichtseigenschaft, die eine Sammlung von UIViews . Die Steuerelemente, die Sie auf dem Bildschirm platzieren, sind alle Unterklassen von UIView und werden dieser Ansicht hinzugefügt.
In unserem Beispiel wird die Ansicht in der viewDidLoad() -Methode des überschriebenen View Controllers erstellt. Ich habe dies codiert, um die Funktion makeLayout() aufzurufen, in der die Steuerelemente UILabel und UIButton erstellt werden. Das UITextField wurde auf Klassenebene erstellt, da in der Funktion buttonAction () darauf zugegriffen werden muss. Alle drei Steuerelemente haben ihre Eigenschaften in makeLayout() ; Ein Steuerelement wird erst angezeigt, wenn es der Ansicht durch Aufrufen der Ansicht des View Controllers hinzugefügt wird.addSubview() Methode.
Die ViewController-Klasse beginnt wie folgt:
Die Variable msg enthält den eingegebenen String. Da wir außerhalb der makeLayout() -Methode (siehe unten) auf das Textfeld zugreifen müssen, wird es auf Klassenebene erstellt.
Diese Methode besteht aus drei Teilen; Der erste erstellt ein UILabel-Steuerelement mit der Anweisung:
let FirstLabel = UILabel()
Die nächsten sechs Zeilen legen die FirstLabel-Eigenschaften fest. Beachten Sie, dass der Compiler intelligent genug ist, um das zu wissen.redColor() ist die Abkürzung für UIColor.redColor(). Schließlich wird das Steuerelement mit der Anweisung addSubview () zur Ansicht hinzugefügt.
Das UITextField-Steuerelement wurde bereits auf Klassenebene erstellt. Die Schaltfläche wird erstellt, die Eigenschaften festgelegt und der Ansicht hinzugefügt.
Der UIButton.Die addTarget () -Methode verfügt über einen Aktionsparameter, der den Namen der Funktion angibt, die aufgerufen werden soll, wenn auf die Schaltfläche geklickt wird. Dies ruft die phantasievoll benannte buttonAction () -Methode auf.
Funktion buttonAction(Absender:UIButton) {
msg = MyEdit.text
showAlert(sender )
}
Die buttonAction() -Methode weist der msg-Variablen die Textzeichenfolge aus dem Textfeld zu, die dann von der showAlert() -Methode angezeigt wird. Dies verwendet den neuen iOS 8 UIAlertController , der den alten UIAlertView (jetzt veraltet) ersetzt. Die showAlert() -Methode erstellt eine Instanz eines UIAlertControllers, fügt eine Aktion hinzu, damit Sie auf etwas klicken können, und ruft dann presentViewController() auf.
Kommentare zum Code
Das Schlüsselwort „var“ wird verwendet, um eine Variable zu deklarieren, während „let“ verwendet wird, um eine konstante oder unveränderliche Variable zu deklarieren. Obwohl die Steuerelemente als unveränderlich deklariert sind, bedeutet dies nur, dass Sie die Kontrollinstanz nicht ändern können, aber ihre Eigenschaften ändern können. Die Warnung wird von einem UIAlertController implementiert. ein anderer Typ von View Controller.
- Python, Swift, JavaScript, Java: Die besten Möglichkeiten, sie zu lernen
- Hier ist Apple, um Sie über Swift zu unterrichten
- Ein erster Blick auf Apples Swift-Programmiersprache