#2 Kurs Swift – Stałe i zmienne

Dzisiaj zajmiemy się rzeczami, które wykorzystujemy praktycznie w każdym programie, mowa tu o stałych i zmiennych. Postaram się Wam przedstawić jak w języku Swift możemy deklarować te elementy. W każdym programie musimy operować na pewny stałych bądź zmiennych. W języku Swift również posiadamy dwa typy:

stałe oznaczane jako let

i zmienne oznaczane jako var

Zarówno stałe jak i zmienne służą do przechowywania pewnych wartości, które potem będziemy wykorzystywać w programie.

Zadeklarowanie nowej zmiennej wygląda następująco:

var liczba:Int = 9
var liczba = Int(9) //wykorzystanie initializera

let stala:Int 99
let stala = Int(99) //wykorzystanie initializera do zdefiniowania stałej

Na początku słówko kluczowe var, następnie nazwa zmiennej (nie można używać polskich znaków) później dwukropek i typ zmiennej, a na samym końcu po znaku = wartość.  Jeżeli podajemy typ zmiennej to nie musimy (ale możemy) od razu przypisywać wartości. Jest to nazywane typowaniem statycznym i dobrą praktyką będzie nadawanie typu zmiennej.

Typ liczb całkowitych (Int)

W języku swift występuje 8 typów danych przeznaczonych do reprezentacji liczb całkowitych, są to Int8, Int16, Int32, Int64, UInt8, Uint16, UInt32 i UInt64. Jeżeli podanym sam typ jako Int, bez przypisanej wielkości bitowej  to na platformach 32 bitowych przyjmie ona postać Int32/UInt32, a na platformach 64 bitowych będzie to Int64/UInt64.

Typ liczb zmiennoprzecinkowych (Float/Double)

Dla liczb zmiennoprzecinkowych mamy typ float i double. Float jest dla 32-bitowych liczb zmiennoprzecinkowych, a double jest dla 64-bitowych liczb zmiennoprzecinkowych. Double możemy oznaczać aliasem jako float64. Istnieje jeszcze dokładniejszy format Float80 dla 80-bitowych liczb zmiennoprzecinkowych.

var price: Float = 9.99
var price2: Float64 = 9.99
var price2a: Double = 19.99
var price3: Float80 = 12.8989663

var price = Float(9.99) //wykorzystanie initializera

Typ logiczny (Bool)

Kolejnym typem będzie typ logiczny Bool. Czyli krótko mówiąc wartości true/false.

var isRun: Bool = true 
var isRun = Bool(true) //wykorzystanie initializera

Typ znakowy (Character)

Jest to typ opisujący jeden znak tekstowy.

var name: Character = "K" 
var name = Character("K") //wykorzystanie initializera

Typ tekstowy (String)

Jest to typ służący do przechowywania ciągów znaków (tekstów)

var name: String = "Kamil" 
var description: String = "Ala ma 2 koty" 
var name = String("Kamil") //wykorzystanie initializera

 

Poznaliśmy  podstawowe i najważniejsze typy danych, teraz spróbujemy je wykorzystać do napisania prostego kalkulatora, którego zadaniem będzie dodanie do siebie dwóch liczb.  Nasza aplikacja będzie zawierała trzy pola text field i jeden przycisk. Po podaniu dwóch liczb i kliknięciu oblicz, w trzecim polu pojawi się suma.

Aby rozpocząć budowę kalkulatora, zaczynamy od zrobienia nowego projektu z lekcji 1. U mnie projekt nazywa się kurs2Calculator.

Po utworzeniu projektu przechodzimy do storyboard i na pustym widoku naszej aplikacji nakładamy na środek 3 nowe pola (TextField) i 1 przycisk (Button). Przeciągamy elementy na środek i wyśrodkowujemy w pionie i w poziomie. Dodatkowo możemy wstawić elementy typu Label, aby opisać do czego służą wybrane pola. Zmienimy jeszcze kolor tła klikając View w naszym View kontrolerze po lewej stronie. Całość powinna wyglądać tak jak poniżej.

Jak widać mamy podpisane elementy typu Label, oraz przycisk. Możemy już uruchomić nasz projekt, ale nie będzie miał podpiętej żadnej logiki.

Aby dodać odbiór liczb z pól, oraz obsługę przycisku musimy zakodować zdarzenia. Zaczynamy od obsługi przycisku. W pierwszej kolejności klikamy na ikonkę Assistans editor (dwa kółka) tak jak na zdjęciu poniżej.

Na połowie ekranu pojawi się kod naszego kontrolera. W tym momencie trzymając klawisz Option i przeciągając myszką przycisk do naszego kontrolera, pojawi się niebieska linia symbolizująca połączenie. Przeciągamy i puszczamy przycisk. W tym momencie powinniśmy zobaczyć opcje okna połączenia.

Ważne aby wybrać Connection na opcję Action i type na UIButton. Oprócz tego wprowadzamy naszej metody aby przy większej licznie zdarzań zachować porządek w kodzie. Resztę opcji pozostawiamy bez zmian. W tym momencie w naszym kontrolerze powinien wygenerować się automatycznie kod z metodą o wybranej przez nas nazwie. W moim przypadku jest to metoda przycisk.

Następnie identycznie robimy z trzema polami TextField, przeciągamy je do naszego kontrolera, najlepiej na samą górę i nadajemy nazwy poszczególnym polom. Następnie wewnątrz metody przycisk, odbieramy wartości wpisane w polach i przypisujemy je do zmiennych. Kolejno dodajemy do siebie dwie wartości, a na samym końcu wyświetlamy je w trzecim polu. Cały kod wygląda następująco.

class ViewController: UIViewController {

    @IBOutlet weak var pole1: UITextField!
    @IBOutlet weak var pole2: UITextField!
    @IBOutlet weak var pole3: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // tutaj wprowadzamy kod naszego programu
        
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func przycisk(sender: UIButton) {
        //obsługa przycisku
        var liczba1:Int32 = Int32(pole1.text!)!
        var liczba2:Int32 = Int32(pole2.text!)!
        
        var wynik:Int32 = liczba1 + liczba2
        
        pole3.text = String(wynik)
        
    }
}

Przykład działania programu dodającego dwie liczby.

Jak widać cała obsługa przycisku mieści się w kilku linijkach. Cały projekt możecie pobrać pod tym linkiem kurs2Calculator_project.

Oczywiście jest to tylko prosty przykład, pasowało by jeszcze zrobić walidajcę danych czy aby na pewno użytkownik wpisał jakąś liczbę, oraz obsługę błędów w razie niepowodzenia obliczeń.  Tym i kolejnymi rzeczami zajmiemy się w kolejnych lekcjach.

Dodaj komentarz