Swift 基本语法02-"let"和"var"
Swift 基本语法03-"if let"和"guard let"
Swift 基本语法04-"switch"和"for"
Swift 基本语法05-"String"
Swift 基本语法06-数组和字典
Swift 简介
-
Swift
2014年06月WWDC大会发布
- 2015年底开源
- IBM开始用
Swift
做后台开发 -
Swift
取消了预编译指令(包括宏,比如Masonry
) - 没有了中括号,和其它语言比较接近
- 3.0 对于
Foundation
框架做了重大调整,去除了NS
前缀 - 将绝大部分
Class
转换为struct
- 访问当前对象的属性,可以不用
self.
,建议:一般情况都不用。只有闭包的时候才去用 - 取消了预编译指令
- 自动推导:变量/常量的类型会根据
=(等号)
右侧代码执行结果,推导对应的类型 - Swift 中对类型要求异常严格,不允许直接运算(不会做默认的隐式的转换,所有的类型确定,都由程序员负责)
let x = 10
let y = 10.5
print(x + y) // 会直接报错(Binary operator '+' cannot be applied to operands of type 'Int' and 'Double')
print(x + Int(y)) // 这样不会报错,输出结果为`20`
OC 中用类型强转->(int)y
Swift 中Int(y)->结构体的构造函数
Swift 中,不存在基本数据类型,都是结构体(考虑安全性和速度,统一做了语法的调整)
1. Button 的创建
// 创建按钮
let btn = UIButton(type: .contactAdd)
view.addSubview(btn)
btn.center = view.center
btn.addTarget(self, action: #selector(clickMe), for: .touchUpInside)
// 按钮的点击事件
func clickMe(btn:UIButton) -> () {
print(#function)
print(btn)
}
2. View 设置背景色
let v = UIView(frame: CGRect(x: 0, y: 20, width: 100, height: 100))
// 代码设置颜色
v.backgroundColor = UIColor.red
// 颜色选择器直接设置
v.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 0, alpha: 1)
view.addSubview(v)
2.1-设置颜色.png
3. ImageView 设置图片
let imageView = UIImageView(frame: CGRect(x: 0, y: 120, width: 100, height: 100))
imageView.image = UIImage(named: "user")
imageView.image = #imageLiteral(resourceName: "user")
view.addSubview(imageView)
3.1-设置ImageView的图片.png
4. 小技巧
// MARK: - XXXXXX
4.1-标记(带横线).png
// MARK: XXXXXX
4.2-标记(不带斜线).png
// FIXME: 准备修改XXXXXX
06.png
5. 可选项(Optional)
-
Optional
是Swift
的一大特色,也是Swift
初学者最容易困惑的问题 - 定义变量时,如果指定是
可选的
,表示该变量可以有一个指定类型的值,也可以是 nil
- 定义变量时,在类型后面添加一个
?
,表示该变量是可选的
- 变量可选项的默认值是
nil
常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值 -
!
代表强行解包
- 从可选值中强行获取对应的非空值,如果真的是nil
,就会崩溃!程序员必须为每一个!
负责
let a: Optional = 10
let b: Int? = 20
print(a) // Optional(10)
print(b) // Optional(20)
print(a + b) // 不能直接相加(Value of optional type 'Optional<Int>' not unwrapped; did you mean to use '!' or '?'?)
print(a! + b!) // 30
网友评论