iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0
Mobile Development

下班悠哉學 iOS 開發系列 第 16

[Day 16] 從頭開始-從入門到 Swift 語法梳理

  • 分享至 

  • xImage
  •  

開發必須的設備以及相關的設定

入門開發的幾個必要條件:一台 Mac , 蘋果帳號 ,以及一個一般人智商的大腦

( 起碼是 512G以上的,128G的感覺只要一更新我裡面的大部分資料就要清空才能

更新,蠻不方便的。 一個APP開發的素材,參考的程式碼以及其他有的沒的大概也

要多個 200g 才勉強夠用,另外也要算到虛擬機的容量。當然外接個硬碟也是個選

擇,只不過讀寫的速度就自然會比較慢一點就是了,這點也要考慮) 當有了 Mac 

之後,就直接註冊蘋果帳號, 然後去 Mac App Stroe 下載 X Code 即可,除

此之外,有實際手機以及 iPad 就更方便一點了。

我個人覺得學習 App 最佳的方法

雖然我目前在iOS開發的領域只能算個新手,我感覺我自己學得蠻慢的,我感覺最

有效的方式還是直接做,做中學真的比較有效,我的經驗是這樣,可能也因為我

比較不是那種一看就會的聰明人就是了,寫程式有時候也是蠻靠經驗的,知道甚

麼流程在什麼狀況比較有效,知道一些 Google 不到的訣竅以及方法,一般的也

起碼要會 Google,這些都是透過反覆的開發以及編寫程式累積的經驗,就類似肌

肉記憶或條件反射,然後再自己總結跟內化成一個能夠讓人聽懂的方法或是流程。

有買書或找到學習影片的話,最起碼手也要打一遍,然後用給出的範例程式碼,改

出自己需要的功能。

業餘或課外的時間假如想學的話,還是以某個產出 ( 比賽 , App, 教學文章或是

接的案子之類的)作為目的進行學習會比較有效果,要不然有時候會像我前幾篇文章

一樣流於形式,只求低空飛過,那抽出來努力做這件事的時間可能沒那麼值得了。

語言大略: Swift

使用 Playground 測試 Swift:

https://ithelp.ithome.com.tw/upload/images/20211002/20092056EfNV6OaUAJ.png
https://ithelp.ithome.com.tw/upload/images/20211002/20092056anjONZlt5n.png
https://ithelp.ithome.com.tw/upload/images/20211002/20092056nTF8yGVvKc.png

常數,變數, 型別推論, 流程控制

let a = 10
var b = 0

let 即宣告常數,類似c中的 static 宣告,在宣告裝入值之後即不能修改常數的

數值, var 即為一般的變數。

-類型標註

像是 var welcomeString: String,就是把變數型態設為 String,其他類似 Int,

Double以及bool也是可以設的。

-元組

宣告的方式類似 let Abt = ("GiGi hadid", 25, 1.79) ,簡單來說就是一個可裝入

不同型態值的複合值,可宣告成常數也可宣告成變數。

陣列,字典,可選型別

  • 陣列
    宣告一個存儲 Int 類型的空陣列
var arr = [Int]()

or

var arr : [Int] = []
  • 字典

創建字典的方式如下,另外創建空字典的方式類似於陣列,在做類似 key, value

查找時使用很方便。

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

-可選型別

簡單來說就是一個避免因nil值產生錯誤的狀況,解包的方法之一就是先確定

值非空值(nil),另一方法就是把值裝入常數中,類似if let a =c {do something; }

函數(Functions),閉包(Closures)

-函數(Functions)

func 函式名(參數: 參數類型) -> 返回值型別 {
內部執行的程式
return 要返回的值
}
類似下面這樣

func sumInt(numbers: int...) -> int {
    var total: Int = 0
    for number in numbers {
        total += number
    }
    return total
}

-閉包(Closures)
總而言之可算是匿名的函數,結構大體如下

{ (參數) -> return 的參數以及型別 in
處理邏輯...
}
閉包的用法可以很多樣,可以使用function當閉包,也可以自己宣告,間單來說,

呼叫閉包就是把該程式碼的片段呼叫過來執行。

func testClosure(printString: String, tCretuenValue: (String) -> Void) {
    tCretuenValue(printString)
}
testClosure(printString: "Good Morning", tCretuenValue: {(str: String) in
    return print(str) 
    //輸出 "Good Morning"
})

func g() -> Void {
     print(“Good Morning”)
}

func m(closure: () -> Void) {
     closure() // call 傳入的 func
}

m(closure: g) // 輸出 "Good Morning"

上一篇
[Day 15] Swift UI 介紹
下一篇
[day 17] Swift 語法梳理後續
系列文
下班悠哉學 iOS 開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言