SwiftiOS学习iOS 开发

Swift3入门教程之一基础部分

2016-10-07  本文已影响967人  奉强

我的博客地址: fengqiangboy.com

文档更新说明:

•   2016年10月07日 v1.0 初稿

0、前言

随着iOS10的发布,相信大部分公司都会把app的适配最低版本直接拉倒iOS8,毕竟维护和开发成本都会省掉不少。
在iOS8上面,有一个重要的特性,就是可以使用swift了,而swift也已经发布了3.0版本,已经相当稳定了,所以,这个时候开始使用swift是一个明智的选择。
这篇文章适合于有一定iOS开发经验的看。

1、常量

let language: String = "Swift"
let introduced: Int = 2014
let isAwesome: Bool = true

2、变量

let language = "Swift"
let introduced = 2014
let isAwesome = true
var version = 1
version = 3
isAwesome = false  //这行报错

运行上面的代码,可以发现,编译器在最后一行报了错误,因为我们试图修改了一个常量的值。

3、字符串拼接

let conference = "WWDC"
let message = "Hello, " + conference + "!"
// "Hello, WWDC!"

4、字符串插值

let conference = "WWDC"
let message = "Hello, \(conference)!"
// "Hello, WWDC!"
let conference = "WWDC"
let year = 2016
let message = "Hello, \(conference) \(year)!"
// "Hello, WWDC 2016!"
let conference = "WWDC"
let year = 2016
let message = "Hello, \(conference) \(year + 1)!"
// "Hello, WWDC 2017!"

5、集合:数组和字典

let names: [String] = ["Lily", "Santiago", "Justyn", "Aadya"]
let ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
let names = ["Lily", "Santiago", "Justyn", "Aadya"]
// an array of String values
let ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
// a dictionary with String keys and Int values

6、循环

6.1 While 和 Repeat-While 循环

while !endOfFile {
   readLine()
}


repeat {
   performTask()
} while tasksRemaining > 0

6.2 For-In循环

6.2.1 遍历字符串

let dogString = "Dog?!🐶"
for character in dogString.characters {
   print(character)
}


/*
输出结果:
D
o
g
?
!
🐶
*/

6.2.2 遍历一个闭合区间

使用1...5表示[1,5]的闭合区间

for number in 1...5 {
   print("\(number) times 4 is \(number * 4)")
}

/*
输出结果:
1 times 4 is 4
2 times 4 is 8
3 times 4 is 12
4 times 4 is 16
5 times 4 is 20
*/

6.2.3 遍历半开半闭合区间

let results = [7, 52, 9, 33, 6, 12, 86, 4, 22, 18, 3]
let maxResultCount = 5
for index in 0..<maxResultCount {
   print("Result \(index) is \(results[index])")
}

/*
输出结果:
Result 0 is 7
Result 1 is 52
Result 2 is 9
Result 3 is 33
Result 4 is 6
*/

6.2.4 遍历数组

for name in ["Lily", "Santiago", "Justyn", "Aadya"] {
   print("Hello, \(name)!")
}

/*
输出结果:
Hello, Lily!
Hello, Santiago!
Hello, Justyn!
Hello, Aadya!
*/

6.2.5 遍历字典

let ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
for (name, age) in ages {
   print("\(name) is \(age) years old")
}

/*
输出结果:
Mohsen is 17 years old
Amy is 40 years old
Graham is 5 years old
*/

7、可变集合

7.1、可变数组

使用var声明的数组就是可变数组,可以通过几种方式修改可变数组中的值。

var packingList = ["Socks", "Shoes"]
print(packingList[0])
packingList.append("Trousers")
packingList[2] = "Jeans"
packingList.append(contentsOf: ["Shorts", "Sandals", "Sunblock"])
packingList[3...5] = ["Hoodie", "Scarf"]


/*
输出结果:

["Socks", "Shoes", "Jeans", "Hoodie", "Scarf"]

*/

7.2、可变字典

var ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
ages["Justyn"] = 67     // Adds a new value for "Justyn"
ages["Justyn"] = 68     // Changes the value for "Justyn"

/*
输出结果:

["Mohsen": 17, "Amy": 40, "Graham": 5, "Justyn": 68]

*/

8、Optional

8.1、从字典中检索值

let ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
// Devon?
// Daryl?
// Daniel?

8.2、加上nil判断

let ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
let possibleAge: Int? = ages["Daryl"]
if possibleAge == nil {
   print("Age not found.")
}


/*
输出结果:

Age not found.

*/

8.3、nil值判断优化 If-Let

let ages = ["Mohsen": 17, "Amy": 40, "Graham": 5]
if let age = ages["Amy"] {
   print("An age of \(age) was found.")
}


/*
输出结果:

An age of 40 was found.

*/

9、 判断结构

9.1、if判断结构

let age = 32
if age == 1 {
   print("Happy first birthday!")
} else if age == 40 {
   print("Happy 40th birthday!")
} else {
   print("Happy plain old boring birthday.")
}

9.2、Switch 判断结构

let age = 32
switch age {
case 1:
   print("Happy first birthday!")
case 13...19:
   print("Happy birthday, teenager!")
case let decade where decade % 10 == 0:
   print("Happy significant \(decade)th birthday!")
default:
   print("Happy plain old boring birthday.")
}
let userName = "admin"
let passwordIsValid = true
switch (userName, passwordIsValid) {
case ("admin", true):
   print("Welcome back, administrator!")
case ("guest", _):
   print("Guests are not allowed in this restricted area.")
case (_, let isValid):
   print(isValid ? "Welcome to the restricted area!" : "ACCESS DENIED.")
}


/*
输出结果:

Welcome back, administrator!

*/

相关文章

1、Swift3入门教程之二---函数

参考资料:

  1. Swift Standard Library Playground
  2. Swift.org
  3. The Swift Programming Language (Swift 3)
  4. Using Swift with Cocoa and Objective-C (Swift 3)
  5. WWDC2016:Session 404 Getting Started with Swift
上一篇 下一篇

猜你喜欢

热点阅读