SlideShare a Scribd company logo
1 of 49
Download to read offline
Swift讀書會#1
2018/03/03
Natalie
Swift基礎語法+
Xcode開發環境介紹
Swift Basics
型別
集合
函式
流程控制
Class
Swift Basics
S w i f t
Types Variables Strings
Function if/
Switch
LoopsClass
Arrays
Dictionary
V a r i a b l e
•宣告變數的語法格式:
var nameOfVariable = "Value of Variable”
• 注意⼤大⼩小寫不⼀一樣
var a = 5
a == A // false
•可以在⼀一⾏行行定義多個變數或常數,⽤用逗號隔開
var b = 2, c = 8, d = 8
b + c + d //18
N a m i n g V a r i a b l e s
• ⾸首字元:⼤大寫或⼩小寫的字⺟母 A 到 Z、底線 

• ⾸首字元之後可使⽤用數字和 Unicode 字元組合

• 不能使⽤用Swift關鍵字、數學符號、箭頭、標點字符、連線與
制表字元(box-drawing characters)
• 嚴格區分⼤大⼩小寫,⼤大⼩小寫不同視作不同命名

• 最好選擇有意義的英⽂文單詞
T y p e I n f e r e n c e
Swift 不⽤用明確設置變數或常數的類類型,因為編譯器能從左邊的值推測⾃自動推
斷出右邊的變數或常數的型別
•Type Inference (型別推斷): 不⽤用宣告型別 -> 隱式宣告
•Type annotation(型別標注): 說明要儲存的值的型別-> 顯式宣告
以下宣告⽅方式顯式與隱式意義相同:
var num1 = 123 // num1 會被推測為Int型別
var num2: Int = 123
var double1 = 3.14 // double1 會被推測為Double型別,選擇浮點數的型別時,
Swift 會選擇Double⽽而不是Float
var double2: Double = 3.14
var pi = 3 + 0.1415 // 表達式中出現了了⼀一個浮點數字⾯面量量,所以表達式會被推斷為Double
型別
T y p e S a f e t y
在編譯的時候,變數或常數並不需要有明確的值,可只宣告名稱
但在使⽤用前必須給初值
型別⼀一旦決定就無法⾃自動轉換
型別不同不能直接⼀一起處理理
型別轉換:必須顯式指定型別
var number3 = 1234 // Type: Int
var intToStr = String(number3) // Type: String
C o n s t a n t
•永遠不會被更更動的資料料宣告為常數
•使⽤用let來來宣告常數,使⽤用var來來宣告變數
•宣告後不能將常數與變數進⾏行行互轉
var A = 1
A = 2
let B = 3
B = 4 // Cannot assign to value: 'B' is a 'let' constant. (只能賦值⼀一次)
T y p e s
• Int 或 UInt - ⽤用於整數,其中作為UInt⽤用來來定義無符號整數的整數
• Float - ⼀一般⽤用於使⽤用較⼩小的浮點值(⼩小數點數字)

例例如:3.14159, 1.23
• Double - ⽤用於較⼤大的浮點值。 

 例例如: 3.1415925359
• Bool - 代表⼀一個布林林值,true or false

• String - 這是有序字符集合。例例如: "Hello, World!"

• Character - ⽤用來來表示⼀一個單字符。例例如: "C"

• Optional - 這表示可以容納⼀一個值或沒有任何值的Variables

T y p e s
• Int 或 UInt - ⽤用於整數,其中作為UInt⽤用來來定義無符號整數的整數
• Double - ⽤用於較⼤大的浮點值。 

•Float - ⼀一般⽤用於使⽤用較⼩小的浮點值(⼩小數點數字)
• Bool - 代表⼀一個布林林值,真或假。
• String - 這是有序字符集合
O p t i o n a l  
Optional可以容納⼀一個值或沒有任何值的Variables
Optional有兩兩種狀狀態:⼀一個是空無⼀一物、⼀一個就是型別的值
宣告:
型別後⾯面加上問號?表示變數是個 Optional
型別與?間不可留留空⽩白
Optional 預設值為nil,宣告後不賦值即設為預設值
O p t i o n a l  
C o l l e c t i o n s
Array
->⼀一組有序排列列的資料料
Dictionary
-> ⼀一組由<鍵,值>組合的資料料,資料料不依序儲存,依照<鍵>索
引<值>效率⾼高於其他集合型別
Set
-> ⼀一組不重複的資料料,資料料不依序儲存
A r r a y
Array由⼀一對中括號[]組成,裡⾯面定義元素
使⽤用[]加上位置對某元素取值
[]搭配=設定(取代)某元素
[]搭配 Range Operator 定義特定範圍的元素
var array = [1, 3, 5]
array[0] //return: 1
array[0] = 0 //return: 0
array //return: [0, 3, 5]
array[1...2] = [1, 2] //return: [1, 2]
array //return: [0, 1, 2]
A r r a y
Array型別⼀一旦決定就不能變更更,設定不同型別的資料料會
造成編譯錯誤
存取超出範圍也會造成編譯錯誤
• 藉由=右邊的值組推測 Array 型別 (Type Inference)
• 明確在[、]之間宣告儲存資料料的型別
• 使⽤用 Generic ⽅方式在< >之間宣告 Array 元素的型別
A r r a y
D i c t i o n a r y
• Dictionary 由⼀一對中括號[]構成,裡⾯面的元素以
<key>:<value>⽅方式存放
• 藉由=右邊的值組推測 Dictionary 型別 (Type Inference)
• 明確在[、]之間宣告儲存資料料的型別
• 使⽤用 Generic ⽅方式在<、>之間宣告 Dictionary 元素的型別
var dict1 = [String:Int]()
var dict2: [String:Int] = [:]
var dict3: Dictionary<String, Int>
var dict4 = ["Dog": 3, "Cat": 5, "Rabbit": 2]
var dict5: [String:Int] = ["Dog": 3, "Cat": 5, "Rabbit": 2]
var dict6: Dictionary<String, Int> = ["Dog": 3, "Cat": 5,
"Rabbit": 2]
D i c t i o n a r y
• 使⽤用[<key>]對某元素取值。
• [<key>]搭配=設定(取代)某元素。
O p e r a t o r s
C o n t r o l F l o w
I f
if 條件 {

執⾏行行程式碼

}
I f
判斷結果必須是Bool
I f . . e l s e
if 條件 {

執⾏行行程式碼

} else {

執⾏行行程式碼

}
I f … e l s e i f … e l s e
if 條件 {

執⾏行行程式碼

} else if {

執⾏行行程式碼

} else {

執⾏行行程式碼

}
S w i t c h
W h i l e L o o p s
while 條件 {

執⾏行行程式碼

}
F o r - i n L o o p s
For item in Collection{

執⾏行行程式碼

}
F u n c t i o n
Function 的格式: 使⽤用func關鍵字定義 Function,接著宣告
Function 名稱,然後使⽤用()宣告參參數列列表,如果有回傳值則使⽤用->宣告
回傳值的型別
func functionName (parameterName: parameterType) -> returnType {
statements to execute
return object
}
F u n c t i o n
C l a s s
C l a s s
C l a s s
C l a s s
I n i t i a l i z a t i o n
S w i f t
Classes
class myClass:someSuperClass {
var myProperty:Int? //
properties

override init() {
myProperty = 12 } //methods
}
Function
func simpleFunction(){
ab}
func funcWithParamAndReturn
(a:Int, b: Int) -> Int { return
a+b }
If…else
if birthYear == 1992 ||
birthYear == 1980 || birthYear
== 1968 {
print("monkey")
} else if birthYear == 1991 ||
birthYear == 1979 || birthYear
== 1967 {
print("goat")
} else {
print("other animal")
}
let iAmAConstant : Int = -42
var iAmAVariable : Int = 23
iAmAVariable = 46
var inferredVariable = "I'm a string"
var optionalString:String? = nil
Strings
let helloString = "Hello", worldString =
" World"
let combinedString = helloString +
worldString
let combinedString2 = "(helloString ) +
(worldString)"
Variables
Arrays
var array = [1, 3, 5]
array[0] = 0
array = array + [5, 6]
array.append(9)
array.count
array[1...3]
array.reverse()
array.isEmpty
Int 

Float

Double

Bool 

String
1, 45, 589

1.23, 3.14159 

3.1415925359 

True, False 

“Angel”, “天使”
Types
Switch
switch birthYear {
case 1992, 1980, 1968:
print("monkey")
case 1991,1979,1967:
print("goat")
default:
print("other animal.)
}
Dictionary
var dict: [String: Int] =
[“⼀一”: 1, “⼆二”: 2]
dict["⼀一"] = nil //delete
dict["三"] = 3 //dadd
實作時間
Product Name:你的 App 的名稱

Team:先跳過此步驟

Organization Name:你的組織名稱

如果你是為某個公司單位開發 App,則你也可以使⽤用你公司單位的名字

Organization Identifier:網域名稱,但要倒過來來寫

假如你有⾃自⼰己申請的網域,你可以填入⾃自⼰己的網域名稱,若若是沒有的話,你也可以使⽤用
「com.」。舉例例來來說,你的名字叫做 Xiaoming,你可以這在 Organization Identifier 這裡輸入
「com.xiaoming」

Bundle Identifier: App 在送審時所使⽤用的唯⼀一識別碼

不需要輸入這個選項,Xcode 會⾃自動產⽣生

Language:Swift — Xcode ⽀支援 Objective-C 與 Swift

Use Core Data:不⽤用勾選

Include Unit Tests:不⽤用勾選

Include UI Tests:不⽤用勾選
Xcode
Xcode
BMI Calculator APP
實作時間
	 1.	建構畫⾯面:UILabel + UItextfield +
UIbutton 

	 2.	與controller 連接:IBOutlet / IBAction

	 3.	Optional checking : if let / guard 

	 4.	設立BMI算式

	 5.	把結果回傳畫⾯面

	 6.	判斷BMI是否過重

	 7.	把結果回傳畫⾯面

8. Reset button
建構畫⾯面
與controller 連接
Optional checking
BMI算式
BMI值計算公式:    
BMI = 體重(公⽄) / 身⾼2(公尺2)
例如:⼀個52公⽄的⼈,身⾼是155
公分,則BMI為 :
52(公⽄斤)/1.552 ( 公尺2 )= 21.6
BMI算式
BMI判斷
BMI判斷
Reset Button
END

More Related Content

What's hot

Scala再探
Scala再探Scala再探
Scala再探afeihehe
 
0710 php學習進度(1)
0710 php學習進度(1)0710 php學習進度(1)
0710 php學習進度(1)K- Peggy
 
C++基礎程式設計 ch3 條件判斷
C++基礎程式設計 ch3 條件判斷C++基礎程式設計 ch3 條件判斷
C++基礎程式設計 ch3 條件判斷requiemformemories
 
Sql培训 (1)
Sql培训 (1)Sql培训 (1)
Sql培训 (1)jhao niu
 
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Justin Lin
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7Justin Lin
 

What's hot (11)

Scala再探
Scala再探Scala再探
Scala再探
 
Python元組,字典,集合
Python元組,字典,集合Python元組,字典,集合
Python元組,字典,集合
 
C語言標準輸出入函式
C語言標準輸出入函式C語言標準輸出入函式
C語言標準輸出入函式
 
0710 php學習進度(1)
0710 php學習進度(1)0710 php學習進度(1)
0710 php學習進度(1)
 
進階主題
進階主題進階主題
進階主題
 
Python串列資料應用
Python串列資料應用Python串列資料應用
Python串列資料應用
 
Chap 07
Chap 07Chap 07
Chap 07
 
C++基礎程式設計 ch3 條件判斷
C++基礎程式設計 ch3 條件判斷C++基礎程式設計 ch3 條件判斷
C++基礎程式設計 ch3 條件判斷
 
Sql培训 (1)
Sql培训 (1)Sql培训 (1)
Sql培训 (1)
 
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Java 開發者的函數式程式設計
Java 開發者的函數式程式設計
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
 

Similar to Swift基礎

Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...彼得潘 Pan
 
Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版Harvey Zhang
 
第三章 栈和队列
第三章 栈和队列第三章 栈和队列
第三章 栈和队列Wang Yizhe
 
JCConf 2023 - 深入淺出 Java 21 功能
JCConf 2023 - 深入淺出 Java 21 功能JCConf 2023 - 深入淺出 Java 21 功能
JCConf 2023 - 深入淺出 Java 21 功能Joseph Kuo
 
Arrays的Sort算法分析
Arrays的Sort算法分析Arrays的Sort算法分析
Arrays的Sort算法分析Zianed Hou
 
Maintainable PHP Source Code
Maintainable PHP Source CodeMaintainable PHP Source Code
Maintainable PHP Source CodeBo-Yi Wu
 
Erlang培训
Erlang培训Erlang培训
Erlang培训liu qiang
 
Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Derek Lee
 
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1Sheng-Han Su
 
C程式-函式與巨集
C程式-函式與巨集C程式-函式與巨集
C程式-函式與巨集艾鍗科技
 

Similar to Swift基礎 (20)

Sun java
Sun javaSun java
Sun java
 
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
 
Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版Swift编程语言入门教程 中文版
Swift编程语言入门教程 中文版
 
Scala
ScalaScala
Scala
 
第三章 栈和队列
第三章 栈和队列第三章 栈和队列
第三章 栈和队列
 
Scala
ScalaScala
Scala
 
JCConf 2023 - 深入淺出 Java 21 功能
JCConf 2023 - 深入淺出 Java 21 功能JCConf 2023 - 深入淺出 Java 21 功能
JCConf 2023 - 深入淺出 Java 21 功能
 
Arrays的Sort算法分析
Arrays的Sort算法分析Arrays的Sort算法分析
Arrays的Sort算法分析
 
第四章
第四章第四章
第四章
 
Arduino程式快速入門
Arduino程式快速入門Arduino程式快速入門
Arduino程式快速入門
 
functional-scala
functional-scalafunctional-scala
functional-scala
 
C語言陣列與字串
C語言陣列與字串C語言陣列與字串
C語言陣列與字串
 
Maintainable PHP Source Code
Maintainable PHP Source CodeMaintainable PHP Source Code
Maintainable PHP Source Code
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
 
Erlang培训
Erlang培训Erlang培训
Erlang培训
 
PHP
PHPPHP
PHP
 
Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Python入門:5大概念初心者必備
Python入門:5大概念初心者必備
 
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1
 
C程式-函式與巨集
C程式-函式與巨集C程式-函式與巨集
C程式-函式與巨集
 

Swift基礎

  • 4. S w i f t Types Variables Strings Function if/ Switch LoopsClass Arrays Dictionary
  • 5. V a r i a b l e •宣告變數的語法格式: var nameOfVariable = "Value of Variable” • 注意⼤大⼩小寫不⼀一樣 var a = 5 a == A // false •可以在⼀一⾏行行定義多個變數或常數,⽤用逗號隔開 var b = 2, c = 8, d = 8 b + c + d //18
  • 6. N a m i n g V a r i a b l e s • ⾸首字元:⼤大寫或⼩小寫的字⺟母 A 到 Z、底線 • ⾸首字元之後可使⽤用數字和 Unicode 字元組合 • 不能使⽤用Swift關鍵字、數學符號、箭頭、標點字符、連線與 制表字元(box-drawing characters) • 嚴格區分⼤大⼩小寫,⼤大⼩小寫不同視作不同命名 • 最好選擇有意義的英⽂文單詞
  • 7. T y p e I n f e r e n c e Swift 不⽤用明確設置變數或常數的類類型,因為編譯器能從左邊的值推測⾃自動推 斷出右邊的變數或常數的型別 •Type Inference (型別推斷): 不⽤用宣告型別 -> 隱式宣告 •Type annotation(型別標注): 說明要儲存的值的型別-> 顯式宣告 以下宣告⽅方式顯式與隱式意義相同: var num1 = 123 // num1 會被推測為Int型別 var num2: Int = 123 var double1 = 3.14 // double1 會被推測為Double型別,選擇浮點數的型別時, Swift 會選擇Double⽽而不是Float var double2: Double = 3.14 var pi = 3 + 0.1415 // 表達式中出現了了⼀一個浮點數字⾯面量量,所以表達式會被推斷為Double 型別
  • 8. T y p e S a f e t y 在編譯的時候,變數或常數並不需要有明確的值,可只宣告名稱 但在使⽤用前必須給初值 型別⼀一旦決定就無法⾃自動轉換 型別不同不能直接⼀一起處理理 型別轉換:必須顯式指定型別 var number3 = 1234 // Type: Int var intToStr = String(number3) // Type: String
  • 9. C o n s t a n t •永遠不會被更更動的資料料宣告為常數 •使⽤用let來來宣告常數,使⽤用var來來宣告變數 •宣告後不能將常數與變數進⾏行行互轉 var A = 1 A = 2 let B = 3 B = 4 // Cannot assign to value: 'B' is a 'let' constant. (只能賦值⼀一次)
  • 10. T y p e s • Int 或 UInt - ⽤用於整數,其中作為UInt⽤用來來定義無符號整數的整數 • Float - ⼀一般⽤用於使⽤用較⼩小的浮點值(⼩小數點數字)
 例例如:3.14159, 1.23 • Double - ⽤用於較⼤大的浮點值。 
  例例如: 3.1415925359 • Bool - 代表⼀一個布林林值,true or false
 • String - 這是有序字符集合。例例如: "Hello, World!"
 • Character - ⽤用來來表示⼀一個單字符。例例如: "C"
 • Optional - 這表示可以容納⼀一個值或沒有任何值的Variables

  • 11. T y p e s • Int 或 UInt - ⽤用於整數,其中作為UInt⽤用來來定義無符號整數的整數 • Double - ⽤用於較⼤大的浮點值。 
 •Float - ⼀一般⽤用於使⽤用較⼩小的浮點值(⼩小數點數字) • Bool - 代表⼀一個布林林值,真或假。 • String - 這是有序字符集合
  • 12. O p t i o n a l   Optional可以容納⼀一個值或沒有任何值的Variables Optional有兩兩種狀狀態:⼀一個是空無⼀一物、⼀一個就是型別的值 宣告: 型別後⾯面加上問號?表示變數是個 Optional 型別與?間不可留留空⽩白 Optional 預設值為nil,宣告後不賦值即設為預設值
  • 13. O p t i o n a l  
  • 14. C o l l e c t i o n s Array ->⼀一組有序排列列的資料料 Dictionary -> ⼀一組由<鍵,值>組合的資料料,資料料不依序儲存,依照<鍵>索 引<值>效率⾼高於其他集合型別 Set -> ⼀一組不重複的資料料,資料料不依序儲存
  • 15. A r r a y Array由⼀一對中括號[]組成,裡⾯面定義元素 使⽤用[]加上位置對某元素取值 []搭配=設定(取代)某元素 []搭配 Range Operator 定義特定範圍的元素 var array = [1, 3, 5] array[0] //return: 1 array[0] = 0 //return: 0 array //return: [0, 3, 5] array[1...2] = [1, 2] //return: [1, 2] array //return: [0, 1, 2]
  • 16. A r r a y Array型別⼀一旦決定就不能變更更,設定不同型別的資料料會 造成編譯錯誤 存取超出範圍也會造成編譯錯誤 • 藉由=右邊的值組推測 Array 型別 (Type Inference) • 明確在[、]之間宣告儲存資料料的型別 • 使⽤用 Generic ⽅方式在< >之間宣告 Array 元素的型別
  • 17. A r r a y
  • 18. D i c t i o n a r y • Dictionary 由⼀一對中括號[]構成,裡⾯面的元素以 <key>:<value>⽅方式存放 • 藉由=右邊的值組推測 Dictionary 型別 (Type Inference) • 明確在[、]之間宣告儲存資料料的型別 • 使⽤用 Generic ⽅方式在<、>之間宣告 Dictionary 元素的型別 var dict1 = [String:Int]() var dict2: [String:Int] = [:] var dict3: Dictionary<String, Int> var dict4 = ["Dog": 3, "Cat": 5, "Rabbit": 2] var dict5: [String:Int] = ["Dog": 3, "Cat": 5, "Rabbit": 2] var dict6: Dictionary<String, Int> = ["Dog": 3, "Cat": 5, "Rabbit": 2]
  • 19. D i c t i o n a r y • 使⽤用[<key>]對某元素取值。 • [<key>]搭配=設定(取代)某元素。
  • 20. O p e r a t o r s
  • 21. C o n t r o l F l o w
  • 22. I f if 條件 { 執⾏行行程式碼 }
  • 24. I f . . e l s e if 條件 { 執⾏行行程式碼 } else { 執⾏行行程式碼 }
  • 25. I f … e l s e i f … e l s e if 條件 { 執⾏行行程式碼 } else if { 執⾏行行程式碼 } else { 執⾏行行程式碼 }
  • 26. S w i t c h
  • 27. W h i l e L o o p s while 條件 { 執⾏行行程式碼 }
  • 28. F o r - i n L o o p s For item in Collection{ 執⾏行行程式碼 }
  • 29. F u n c t i o n Function 的格式: 使⽤用func關鍵字定義 Function,接著宣告 Function 名稱,然後使⽤用()宣告參參數列列表,如果有回傳值則使⽤用->宣告 回傳值的型別 func functionName (parameterName: parameterType) -> returnType { statements to execute return object }
  • 30. F u n c t i o n
  • 31. C l a s s
  • 32. C l a s s
  • 33. C l a s s
  • 34. C l a s s
  • 35. I n i t i a l i z a t i o n
  • 36. S w i f t Classes class myClass:someSuperClass { var myProperty:Int? // properties
 override init() { myProperty = 12 } //methods } Function func simpleFunction(){ ab} func funcWithParamAndReturn (a:Int, b: Int) -> Int { return a+b } If…else if birthYear == 1992 || birthYear == 1980 || birthYear == 1968 { print("monkey") } else if birthYear == 1991 || birthYear == 1979 || birthYear == 1967 { print("goat") } else { print("other animal") } let iAmAConstant : Int = -42 var iAmAVariable : Int = 23 iAmAVariable = 46 var inferredVariable = "I'm a string" var optionalString:String? = nil Strings let helloString = "Hello", worldString = " World" let combinedString = helloString + worldString let combinedString2 = "(helloString ) + (worldString)" Variables Arrays var array = [1, 3, 5] array[0] = 0 array = array + [5, 6] array.append(9) array.count array[1...3] array.reverse() array.isEmpty Int Float Double Bool String 1, 45, 589 1.23, 3.14159 3.1415925359 True, False “Angel”, “天使” Types Switch switch birthYear { case 1992, 1980, 1968: print("monkey") case 1991,1979,1967: print("goat") default: print("other animal.) } Dictionary var dict: [String: Int] = [“⼀一”: 1, “⼆二”: 2] dict["⼀一"] = nil //delete dict["三"] = 3 //dadd
  • 38. Product Name:你的 App 的名稱 Team:先跳過此步驟 Organization Name:你的組織名稱 如果你是為某個公司單位開發 App,則你也可以使⽤用你公司單位的名字 Organization Identifier:網域名稱,但要倒過來來寫 假如你有⾃自⼰己申請的網域,你可以填入⾃自⼰己的網域名稱,若若是沒有的話,你也可以使⽤用 「com.」。舉例例來來說,你的名字叫做 Xiaoming,你可以這在 Organization Identifier 這裡輸入 「com.xiaoming」 Bundle Identifier: App 在送審時所使⽤用的唯⼀一識別碼 不需要輸入這個選項,Xcode 會⾃自動產⽣生 Language:Swift — Xcode ⽀支援 Objective-C 與 Swift Use Core Data:不⽤用勾選 Include Unit Tests:不⽤用勾選 Include UI Tests:不⽤用勾選 Xcode
  • 39. Xcode
  • 40. BMI Calculator APP 實作時間 1. 建構畫⾯面:UILabel + UItextfield + UIbutton 2. 與controller 連接:IBOutlet / IBAction 3. Optional checking : if let / guard 4. 設立BMI算式 5. 把結果回傳畫⾯面 6. 判斷BMI是否過重 7. 把結果回傳畫⾯面
 8. Reset button
  • 44. BMI算式 BMI值計算公式:     BMI = 體重(公⽄) / 身⾼2(公尺2) 例如:⼀個52公⽄的⼈,身⾼是155 公分,則BMI為 : 52(公⽄斤)/1.552 ( 公尺2 )= 21.6
  • 49. END