Amer的iOS Swift學習之路---Day1

自從今年二月底帶回來人生第一台Macbook以後,
也終於可以開始進入iOS Swift的學習開發人生,有人常說寫日誌是記錄自己學習最好的方式,同時也希望可以戰勝自己的惰性。

正式開始進入開發前,我給了自己一點小小的目標

  1. 一個星期至少可以更新四篇開發日記到這個部落格來
  2. 希望能夠幫助到跟我一樣剛開始開發iOS Swift的新手開發者們
接下來正式進入開發正題吧!

----------------------------------------------
開發環境 : Macbook Pro(13-inch,2019)/2.4Ghz Intel Core i5
作業系統:macOS Mojava 10.14.5
開發工具 : Xcode 11.2.1
實機工具:iPhone 7Plus/iPhoen Xs
----------------------------------------------

學習Swfit的第一階段

安裝完Xcode以後,點擊Get started with a playground並建立一個Blank空白模板,這樣你可以直接在這個模板上面進行基礎的Swift語言測試,建立完成以後的畫面應該會長得像是:


畫面上已經可以看到一個名為str的變數,在Swift裡面,如果你想要宣告一個變數,可以用var這個關鍵字來宣告,畫面上,我宣告了一個String形態的變數在上頭,如果是以字串的方式宣告,字串必須用""這樣的雙引號給包覆起來。

當然字串也是可以被組合起來的,例如


var str = "Hello, playground"

var str = "Taiwan"

var message = str + str2


按下Shift + Command + Enter,你可以得到兩個字串組合起來的結果。
當然除了宣吿字串以外,也可以把var宣告為Int的型態,例如 :

var num = 10

var num2 = 20

var num3 = num + num2


跟字串一樣的結果,num3會得到num + num2的數值「30」
那麼如果要把Int以及String的型態合而為一的話,直接透過 + 號是不行的,在Type-Safe的架構當中,Swift會去檢查變數是以哪種型態被儲存,因此要透過一些方式來組合這兩種不一樣的變數資料。

例如,轉換型態

var combo = message + String(num3)


或是使用String Interpolation的方式

var combo2 = "Hello Taiwan \(num3)"


兩種方法都可以數值資料結合到字串型態當中。


接著來看看Swift的Array,由於Type Safe的關係,Array裡面必須放相同形態的內容,舉例來說:

var HeroName = ["He","Me","She"]


又或著今天我們需要新增一個內容到這個陣列裡面,則可以用:

HeroName.append("Zawarudo")


使用append這個語法即可,現在這個陣列一共有四個項目,一般來說我們可以指定特定項目進行輸出取值:

HeroName[0]


這樣代表我們要把第一個值給取出來使用,又或著在Swift當中,針對陣列的index可以透過for-in的動作將陣列資料一個一個拿出來:

for index in 0...3 {

    print(HeroName)

}


新版的Swift裡面,也可以將這個迴圈改寫成:

for _ in 0...3 {

    print(HeroName)

}


同樣也能夠將資料完整的印出來。
既然陣列可以存取資料,但如果我們今天對於某項資料的位置不清楚,而且陣列數目太大的時候,我們不可能讓這個迴圈跑那麼多次,所以有另外一種形態的dictionary使用(同時也很常見),寫起來會像這個樣子:

var AllHeroName = ["001":"HE","002":"ME","003":"She"]


這樣的好處在於,改成使用一個為一個Key值來建立索引,稍微改一下上面的範例取值:

print(AllHeroName["001"])


這樣就能將相對應到的值給取出來,同時也改寫一下for-in的迴圈處理方法(別忘使用String Interpolation)

for(key,Value) in AllHeroName

{

    print("Num : \(key)")

    print("Name : \(Value)")

}


開發Swift的過程中,必須了解到一個很重要的「Optional」的觀念,在開發當中,我們可能還沒有需要去指定一個變數的內容,此時可以先透過?的方式來指定一個便屬的型態,例如:

var HeroType: String?


此時如果我們將這個變數帶入資料,Xcode會要求我們確認此變數真的有資料(字串),處理的方式大概有幾種:

HeroType = "No.1 Hero All might"

if HeroType != nil

{

    print(HeroType)

}


又或者

if let HeroType = HeroType

{

    print(HeroType)

}


這兩種方式都可以確保變數裡面有資料並且加以運用。

原則上Swift的基礎觀念大概就先到這裡為止,第二天再來正式開始進去App的流程當中!


留言