视频地址:https://www.bilibili.com/video/BV1rb411C7eN?p=2
1. 什么是MVC
MVC结构- Model:What your app is (but not how it is displayed) ,Model仅仅关心你的app里有什么,而不是他们怎样显示
- Controller:How your Model is presented to the user (UI logic),Model如何展现给用户,是用来处理逻辑
- View:Controller's minions ,控制器的仆从
2. M,V,C之中如何通信
MVC沟通模式- Controller可以随意通知Model
- Controller可以通过outlet随意控制View
- Model和View不能通信
- View对Controller通过Target-action:目标-动作模式进行通信。[https://www.cnblogs.com/wzrong/p/3218867.html] ,这篇文章里讲得很细
- View通过delegate模式与Controller进行通信
- Model通过NSNotification & KVO来通知Controller更新数据
3. 不同MVCs之间如何通信
MVCs- 所有控制器把其他的控制器当成自己的一个view
4. Struct和Class的区别
- struct不能继承
- struct是值类型,class是应用类型(值类型:被引用,传递时或者传递给一个变量时,会被复制;引用类型:当被传递时,被传递的仅仅是指针,而数据存在堆里)
- 当一个class的所有变量都已经被初始化,这个class会获得一个自动的初始化函数
- struct初始化时,需要初始化他的所有变量,即使已经预设值好了
-
初始化函数倾向将内部参数名和外部参数名保持一致
struct如何初始化
5. for ... in ... 循环
for identifier in "Apple" {
}
for identifier in [1,2,3] {
}
for identifier in 0..< cardNumbers {
}
- in后面是一个sequence,可以是数组Array,字符串String,可数区间countable range
6. static func & static var
- static func 仅仅和类相关的函数,和实例无关,类似类函数
- static var 仅仅和类相关的变量,和类一起储存的变量 , var 是和实例存储在一起
-
在static func 中不需要加上类型就能访问static var
static func & static var.png
7. lazy var
- 当初始化一个变量时,需要用到另一个var会报错,因为这时还未初始化完成,所有变量还不可用,这时可以使用lazy进行初始化,使用lazy修饰的var并不会在一开始进行初始化,而是当有人用到它时,才会进行初始化,即延缓了这个变量的初始化。
网友评论