Die Anleitung zum Swift für den Anfänger

1- Die Vorstellung

Das ist das Anleitungsdokument über Swift für den Anfänger. Um  Swift zu programmieren, sollen Sie das Programmierungstool XCode installieren. Sie können die Anleitung des Herunterladen und der Installation bei ... sehen :
  • TODO Link? 10571
Das ist ein Unterlagen zum schnellen Lernen. Wenn Sie mit Swift nur anfängen, sollen Sie vom oben nach hinten lesen und durchführen weil das die schrittliche Anleitung ist. Das Dokument bringt Ihnen eine Überblick vor dem Kennenlernen der detailierten Unterlagen 

2- Ihre erste Projekt Swift erstellen

Das ist das erste Foto bei der Öffnung von Xcode
das Projekt erstellen
Wir erstellen ein einfaches Projekt (die Console Applikation, die keine Interface hat).
Den Name für das Projekt als SwiftBasics:stellen
Ein Verzeichnis bei Desktop erstellen um Ihre Projekte zu enthalten
Den Name von dem Verzeichnis zur Enthaltung Ihres Projekt als SwiftTutorials erstellen:
Ihr Projekt wird erstellt
main.swift ist eine Hauptfile, die bei der Erstellung Ihres Projekt erstellt wird. Sie sollen die Hauptfile starten. Sie wird auf dem Bildschirm Console die Wörter Hello, world" drücken.
Klicken Sie auf  "Enable" damit das Programm in dem Modus für den Programmern laufen kann
Das Programm läuft und drückt die Wörter "Hello, world" aus

3- Die Erklärung der grundlegenden Eigenschaften vom Swift

Sie sollen einen grundlegenden Überblick über Swift haben. Das ist sehr wichtig.

Was ist Top Level

Ein Befehl oder eine Ausdrück, die in einer Funktion, einem Befehl oder einer Klasse liegen nicht, liegen d.h in Top-Level.
Top-Level ist eine Ort, wo Sie die Bibliothek, Variable, Konstante, Funktion, Klasse melden. Nach dem Standard können die Variable und die Konstante, die in der Top-Level von der Hauptfile gemeldet werden, in die vielen Hauptfile in einer gleichen Module benutzt werden. 
Sie können eine Ausdrück in  Top-Level nicht schrieben, zum Beispiel eine Ausdrück zur Aufruf einer Funktion. Deshalb ist die Aufruf der Funktion  print("Hello") zum Drucken der Wörter "Hello" in  Top-Level nicht gültig. Wenn Sie es in die Hauptfile main.swift nicht arbeiten (Das ist eine Ausnahme).

Die Startpunkt des Programm Swift:

Im Swift Programm ist die File main.swift besonder. Denn es ist ein Startpunkt um das Programm zu laufen. Sie können die Funktion oder Ausdruck im Top-Level in die Hauptfile main.swift rufen. Das ist eine Ausnahme für die File
Ich erstelle eine neue Hauptfile mit dem Name von newfile.swift, dann sehen Sie eine Fehleranmeldung wenn ich eine Ausdrück in Top-Level schreibe.
Die Ausdrücke sollen in einer Funktion oder einen Befehl stellen

4- Erstellen Sie eine Hauptfile

jetzt sollen Sie eine erste Hauptfile von Ihnen erstellen und sie laufen
Auf die XCode klicken Sie die Rechtmaustaste in dem Verzeichnis, wo die Hauptfile main.swift liegt, wählen Sie  "New file".
Geben Sie den Name der File MyFirstSwift:
MyFirstSwift.swift wurde erstellt
Ich ändere die erstellte Quellenfile und füge eine Funktion sayHello() ein. Achtung: die Einzelheit der Funktion wird später erwähnt 
MyFirstSwift.swift
import Foundation

// The content of the greeting
var message = "Hello every body"

// Function sayHello
func sayHello()  {
    
    // Call print function to print out a message
    // Note that you can not call this function in the Top-Level.
    print(message)
    
}
Die Startpunkt des Laufen der Applikation ist  main.swift im Swift, deshalb rufen Sie im main.swift um die Funktion sayHello() zu prüfen. Die Kode vom main.swift ändern:
main.swift
import Foundation


print("Hello, World!")


// Call sayHello() function.
// (Write in MyFirstSwift.swift)

sayHello()
Das Projekt durchführen

5- Die Datentyp im Swift

Type Typical Bit Width Typical Range
Int8 1byte -127 to 127
UInt8 1byte 0 to 255
Int32 4bytes -2147483648 to 2147483647
UInt32 4bytes 0 to 4294967295
Int64 8bytes -9223372036854775808 to 9223372036854775807
UInt64 8bytes 0 to 18446744073709551615
Float 4bytes 1.2E-38 to 3.4E+38 (~6 digits)
Double 8bytes 2.3E-308 to 1.7E+308 (~15 digits)

6- Die Variable und die Meldung

Ein Variable wird durch einen Name für ein Datenspeicherungsort festgelegt, wo Ihr Programm verarbeitet kann. Jede Variable im Swift hat eine bestimmte Daten, davon die Größe und der Umfang der Wert können in der Speicherung archiviert werden und die Kollektion der Operatoren können für die Variable angewendet werden 
Die Variable kann während ihrer Existenz im Programm verändern. Die Variable, die die stabile Wert hat, wird die Konstante genannt. Benutzen Sie das Schlüsselwort let um eine Variable als eine Konstante melden
Im Swift können Sie eine Variable in Top-Level oder eine lokale Variable in einer Klasse oder einer Funktion melden. Die Variable, die in Top-Level gemeldet werden, können in die anderen QuellenFile in einem gleichen Modul (Projekt) werden 
Die Variable melden
// Declare a variable.
var <Variable name> : <Data Type> ;

// Declares a variable, and assign a value to it.
var <Variable name> : <Data Type> = <value>;

// Declare a constant:
let <Variable name> : <Data Type> = <value>;


// Example

// Declare a variable
// Name of variable: year
// Data type: Int
// Value: 2016
var year: Int = 2016;

// With primitive data types (int, double, ..) and String, you can ignore in the declaration
// Swift can understand your intentions.

var languageName = "Swift"     // inferred as String
var version = 1.0                     // inferred as Double
var introduced = 2014              // inferred as Int
var isAwesome = true              // inferred as Bool
VariableExample.swift
import Foundation


// Use the keyword 'let' to declare a constant.
// Constant name is COPYRIGHT, data type is String.
// And its value is "o7planning".
// (This is a constant declared in Top-Level
// It can be used in other source files in the project).

let COPYRIGH: String = "o7planning"

// Use the keyword 'var' to declare a variable.
// Name of variable: year
// Data type: Int
// Value: 2016
// (This is a variable declared in Top-Level
// It can be used in other source files in the project).
var year: Int = 2016



func variableExample()  {
    
    
    // Declare a constant integer.
    // You can not assign new values for the constants.    
    let MAX_SCORE = 100;
    
    // Declare an integer variable
    var score = 90;
    
    // Declare a string
    var studentName = "Tom"
    
    // Write string to the Console.
    print("Hi \(studentName)")
    
    print("Your score: \(score)/\(MAX_SCORE)")
    
    print("Assign new value for studentName")
    
    // Assign new value for studentName.
    studentName = "Jerry"
    print("Hi \(studentName)")
    
    
}
 
Die Kode der Hauptfile  main.swift ändern
main.swift
import Foundation


// Call variableExample() function, is written in VariableExample.swift file.

variableExample()
Das Beispiel durchführen

7- Der Verzweigungsbefehl

7.1- Der Befehl If-else

if ist ein Befehl zur Prüfung einer Bedingung im Swift. Zum Beispiel: Wenn  a > b, dann ....
Die üblichen Vergleichoperator
Der Operator die Bedeutung das Beispiel
> größer 5 > 4 ist richtig (true)
< kleiner 4 < 5 ist richtig (true)
>= größer oder gleich 4 >= 4 ist richtig (true)
<= kleiner oder gleich 3 <= 4 ist richtig (true)
== gleich 1 == 1 ist richtig (true)
!= nicht gleich  1 != 2 ist richtig (true)
&& und  a > 4 && a < 10
|| oder  a == 1 || a == 4
// Syntax

if ( condition )  {
 // Do somthing here.
}
Das Beispiel
// Example 1:
if ( 5 < 10 )   {
   print( "Five is now less than ten");
}

// Example 2:
if ( true )   {
    print( "Do something here");
}
Die volle Struktur vom if - else if - else:
// You are aware that there will be at most only one block is run.
// The program checks the condition from top to bottom until
// it encounters a condition that is true,
// and run this block and the program does not check to
// the remaining conditions in the branching structure.


// If condition1 is true then ..
if (condition1 )  {
    // ... Do something if condition1 is true.
}
// Else if condition2 is true then ....
else if(condition2 )  {
    // ... Do something here if condition2 is true (condition1 is false).
}
// Else if conditionN is true then ...
else if(conditionN )   {
     // .. Do something if conditionN is true (All the above conditions are false)
}
// Else All the above conditions are false
else  {
 //  Do something
}
IfElseExample.swift
import Foundation


func  ifElseExample()  {
    
    // Declare a variable type of UInt32 with random value.
    // (arc4random() function return random value).
    var randomValue: UInt32 = arc4random()
    
    print("Random value = " + String(randomValue))

    // Division 200 and returns the remainder
    // (Return 0 -> 99)
    var age: UInt32 = randomValue % 200;
   
    print("Your age= " + String(age))
   
    // Check if age < 80 then
    if (age < 80)    {
        print("You are pretty young");
    }
        
    // Else if age between 80 and 100 then
    else if  age >= 80 && age <= 100     {
        print("You are old");
    }
        
    // Else (The remaining cases)
    // Ngược lại (Các trường hợp còn lại).
    else    {
        print("You are verry old");
    }
    
    
}
Das Beispiel durchführen

7.2- Der Befehl Switch-Case

Einige Beispiele benutzen switch:
SwitchExample1.swift
import Foundation

func switchExample1()   {
    
    // Require users to select an option.
    print("Please select one option:")
    
    print("1 - Play a game")
    print("2 - Play music")
    print("3 - Shutdown computer")
    print("---------------------")
    
   
    // Declare a variable type of UInt32 with random value.
    // (arc4random() function return random value).
    var randomValue: UInt32 = arc4random()
   
    // Division 5 and returns the remainder (0, 1, 2, 3, 4) 
    var myValue:UInt32 = randomValue%5
    
    // Declare a variable 'option'.
    // Cast data type to Int.
    // 'option' value in 1, 2, 3, 4, 5.
    var option:Int = Int(myValue) + 1
    
    // String(option): Cast data type to String.
    print("You select: " + String(option))
    
    // Check the value of 'option'.
    switch (option)   {
        
    case 1:
        print("You choose to play the game");
    case 2:
        print("You choose to play the music");
    case 3:
        print("You choose to shutdown the computer");
    // Others case.
    default:
        print("Nothing to do...");
    }
    
    
}
Das Beispiel durchführen
Sie können viele Werte in einem Fall (case) zusammenstellen
SwitchExample2.swift
import Foundation


func switchExample2() {
    
    // Declare a varable and assign value of 3.
    var option = 3
    
    print("Option = \(option) ")
    
    // Check value of 'option'.
    switch (option)    {
        
    case 1:
        print("Case 1")
    
    // Case value in 2,3,4,5
    case 2, 3, 4, 5:
        print("Case 2,3,4,5!!!")
    
    // Case value in 6 -> 10
    case 6...10:
        print("Case 6...10")
    
    // Case value in 11 -> 20 and odd
    case 11...20 where option % 2 == 1:
        print("Case 11...20 and odd")
    
    default:
        print("Nothing to do...")
        
    }
    
 
 
}
 
Das Beispiel

Fallthrought:

Wenn Sie mit den anderen Sprache wie Java, C# arbeitet haben, können Sie den Unterschied vom Syntax der Benutzung  switch im Swift finden. Im  Swift jede wenn ein Fall  (case) richtig ist, wird das Befehlblock durchgeführt und die anderen Situation werden nicht geläuft 
Beim  Java, C# wenn ein Fall richtig ist, wird das Befehlblock durchgeführt. Und der nächste Befehl case (oder default) führt weiter durch wenn der Befehl break erscheint nicht .

Swift macht automatisch den Befehl  break nachdem es den Befehl case durchführt
Swift fügt den Befehl   fallthrought ein (Der Befehl liegt im Java, C# nicht).  fallthrought sagt dem Programm die weitere Durchführung des nächsten Befehl case (oder der Befehl default
Sehen Sie ein Beispiel zur Illustration
SwitchFallthroughExample.swift
import Foundation

func switchFallthroughExample()  {


   var option = 15

   switch (option)   {
    
    
   case 0...10:
      print("Case 0...10")
      // fallthrough: Execute next case.
      fallthrough
    
   case 11...20:
      print("Case 11...20")
      // fallthrough: Execute next case.
      fallthrough
    
   case 21...30:
      print("Case 21...30")
      // fallthrough: Execute next case.
      fallthrough
    
   case 31...40:
      print("Case 31...40")
    
   case 41...50:
      print("Case 41...50")
    
    default:
      print("Default case")
   }

}
Das Beispiel durchführen

8- Die Schleife im Swift

Die Schleife wird benutzt um ein Befehlsblock zu wiederholen. Es macht Ihr Programm einen Befehl mehrmals wiederholen. Das ist eine grundlegende Aufgabe in der Programmierung
Swift unterstützt 4 unterschiedlichen Schleife
  • FOR .. IN
  • FOR
  • WHILE
  • REPEAT WHILE

8.1- Die Schleife for... in

Die Schleife for .. in um eine Kollektion oder ein Array zu browsen
Die Syntax
for <element> in <collection> {
  // Do something here.
}
Das Beispiel unten benutzt   for .. in um ein Array zu browsen (Der Begriff Array wird in den nächsten Teil gemeint).
ForInExample1.swift
import Foundation


func forInExample1()  {
    
    // Declare an array type of String with 5 elements.
    
    var languages:[String] = ["Java","C#", "C/C++", "Swift", "Ruby"]
    
    
    for lang in languages  {
        
        print("Language " + lang)
    }
    
}
 
Das Beispiel durchführen

8.2- Die Schleife for

Die Syntax der Schleife FOR:

for (initialize variables ; condition ; updates new values for variables )  {
    // Execute the block when the condition is true
}
Zum Beispiel
// Example 1:
// Declare a variable x and assign value 0.
// The condition is x < 5
// If x < 5 is true then execute the block.
// After each loop, the value of x is increased by 1
for (var  x = 0;  x < 5 ; x = x + 1)    {
    // Do something here when x < 5 is true.
}


// Example 2:
// Declare variable x and assgin value of 2
// The condition is x < 15
// If x < 15 is true then execute the block.
// After each loop, the value of x is increased by 3
for (var  x = 2;  x < 15 ; x = x + 3)     {
     // Do something here when x < 15 is true.
}
ForLoopExample.swift
import Foundation


func forLoopExample()   {
   
    print("For loop example");
 
   
    // Declare variable x and assign value of 2
    // The condition is x < 15
    // If x < 15 is true then execute the block.
    // After each loop, the value of x is increased by 3
    for (var x = 2; x < 15; x = x + 3)    {
        print( );
        print("Value of x = \(x)");
    }

}
 
Das Ergebnis der Durchführung des Beispiel

8.3- Die Schleife While

Die Syntax
while (condition)  {
 // While the condition is true, then execute the block.
}
Zum Beispiel
// Declare a variable x
var  x = 2;

while ( x < 10)    {
// Do something here when x < 10 is true
// ....
// Update new value to x.
x = x + 3;
}
import Foundation

func whileLoopExample()   {
   
    print("While loop example");
   
   
    // Declare a variable x and assign value of 2
    var x = 2;
   
    // The condition is x < 10.
    // If x < 10 is true then execute the block.
    while (x < 10)  {
       
        print("Value of x = \(x)");
       
        x = x + 3;
    }
   
}
Das Ergebnis der Durchführung des Beispiel

8.4- Die Schleife repeat-while

Die Syntax der Schleife  REPEAT-WHILE
// Characteristics of the REPEAT-WHILE loop is that it will  execute the block at least 1 time.
// Once finished block, it will check  the conditions again whether continue to execute or not.
repeat   {

// Do something here
// After that, continue to check conditions whether continue to run this block or not.

} while (condition)
RepeatWhileExample.swift
import Foundation

func repeatWhileExample()    {
 
   print("Repeat-While loop example")
 
   // Declare a variale x and assign value of 2
   var x = 2

   // Execute the block.
   // Once finished block,
   // it will check the conditions again whether continue to execute or not.
   repeat    {
       print("Value of x = \(x)")
     
       x = x + 3;
     
   } while (x < 10)
 
}
Das Ergebnis der Durchführung des Beispiel

8.5- Das Befehl break in der Schleife

break ist ein Befehl, der in einer Befehlblock der Schleife liegen kann. Das ist der Befehl zum Ende einer Schleife bedingunglos
LoopBreakExample.swift
import Foundation


func loopBreakExample()    {
 
   print("Break example");
 
 
   // Declare a variable and assign value of 2
   var x = 2;
 
   while (x < 15)     {
     
       print("----------------------");
       print("x = \(x)");
     
       // If x = 5 then exit the loop.
       if (x == 5)  {
           break;
       }
       // Increase value of x by 1.
       x = x + 1;
       print("After +1, x = \(x)");
     
   }
 
}
Das Ergebnis der Durchführung des Beispiel:

8.6- Das Befehl continue in der Schleife

continue ist ein Befehl (statement), der in einer Schleife sein können. Beim Treffen des Befehl continue ignoriert das Programm die Befehlen unter continue und startet eine neue Schleife 
LoopContinueExample.swift
import Foundation

func loopContinueExample()  {

  print("Continue example")


  // Declare a variable and assign value of 2
  var x = 2

  while (x < 7) {
   
      print("----------------------")
      print("x = \(x)")

      // % is used for calculating remainder
      // If x is even, then ignore the command line below of continue
      // and start new loop.
      if (x % 2 == 0)  {
          // Increase x by 1.
          x = x + 1
          continue
      }
      else {
           // Increase x by 1.
          x = x + 1
      }
      print("After +1, x = \(x)")
   
  }
}
Das Ergebnis der Durchführung des Beispiel

9- Das Array im Swift

9.1- Das einseitige Array

Das Array vom Swift ist wesentlich ein Struct. Es unterscheidet sich mit dem Array in der anderen Sprache wie Java, C#,...Das Array vom Java, C# hat die bestimmten Anzahl der Elemente und kann die Element nicht hinzufügen oder löschen, das kann das Array vom Swift inzwischen machen 
Das ist eine IIlustration über ein einseitiges Array mit 5 Elemente. Die Elemente werden die Index von 0 bis 4 markiert
Die Syntax zur Meldung eines einseitigen Arrays
// Way 1:
// Declare an array of int, specifies the elements.
var years: [Int] = [ 2001, 2003, 2005, 1980, 2003 ];

// Or (Inferred as array of Int):
var years = [ 2001, 2003, 2005, 1980, 2003 ];




// Way 2:
// Declare an array of floats, specifying the number of elements and values.
// (3 elements).
var salaries:[Float] = [Float](count: 3,repeatedValue :0 );

// Or:
var salaries  = [Float](count: 3,repeatedValue :0 );


// Way 3:
// Declare a empty array (Have no elements)
var emptyArray:[Int] = [Int]()
Zum Beispiel
ArrayExample1.swift
import Foundation

func arrayExample1()  {
   
    // Way 1:
    // Declare an array of int, specifies the elements.
    var years: [Int] = [ 2001, 2003, 2005, 1980, 2003 ];
   
    print("--- years --- ");
   
    // count is a property of the array, it returns the number of elements.
    print("Element count of array years = \(years.count)");
   
   
    // Use a for loop to print out the elements of the array.
    for (var i = 0; i < years.count; i = i + 1) {
        print("Element at \(i) =  \(years[i])");
    }
   
    print("--- salaries --- ");
   
    // Way 2:
    // Declare an array of floats, specifying the number of elements and values.
    // (3 elements).
    var salaries:[Float] = [Float](count: 3,repeatedValue :0 );
   
    // Assign values to the elements.
    salaries[0] = 1000;
    salaries[1] = 1200;
    salaries[2] = 1100;
   
   
    // Use a for loop to print out the elements of the array.
    for (var i = 0; i < salaries.count; i = i + 1) {
        print("Element at \(i) =  \(salaries[i])");
    }

   
}
 
Das Ergebnis der Durchführung des Beispiel

Das Array vom Swift ist ein Struct

Im  Swift ist ein Array wesentlich ein Struct (die Struktur). Deshalb hat es die Attribute und die Methode, einschließend die Methode zum Hinzufügen oder Erlösung der Elemente in das Array
// Declare an array of String, with 2 elements.
var languages = ["Java","C#"]

// Using append() to add element to ends.

languages.append("Swift")

// Can also use the += operator to append an array at the end.
languages += ["C/C++", "Perl"];
Zum Beispiel
ExpaddingArrayExample.swift
import Foundation


func expaddingArrayExample()  {
    
    // Declare an array of String, with 2 elements.
    var languages = ["Java","C#"]
    
    // Using append() to add element to ends
    
    languages.append("Swift")
    
    // Can also use the += operator to append an array at the end.
    languages += ["C/C++", "Perl"];
 
    // For in loop.
    for lang in languages {
        
        print("Language: " + lang)
    }
    
}
 
Das Beispiel durchführen

enumerate

Die Methode  enumerate() vom Array gibt das Objekt vom EnumerateSequence struct rück. Jedes Element vom EnumerateSequence enthaltet die Index-Information und Elemente des ersten Arrays
Über Struct bei ... mehr sehen
Zum Beispiel: Die Elemente eines Array durchsehen
EnumerateArrayExample.swift
import Foundation
import Cocoa

func enumerateArrayExample()  {
    
    // Declare an array of String with 3 elements.
    var languages :[String] = ["Java", "C#", "Swift"]
    
 
    
    for  (index, element )  in languages.enumerate()  {
        
        print("Element at \(index) = \(element)");
    }
    
}
Das Beispiel durchführen

View more categories: