.position(x:y:) 指定的位置,如果是在一个 stack 里的话是相对位置,vstack 是纵向相对,hstack 是横向相对
CGFloat:横纵坐标,size:width height。
mutating 可以修改 structure 里的 property。
mvc 是 model view controller,model = logic + data, controller collects logics and data from model and conveys them to view, at the same time gets the signals from view and pass them to model.
class 创建的实例尽管使用 let 声明但是却可以修改,对于 struct 却需要用 var 来声明;
struct 内的函数如要修改变量,需要 mutating keyword,但是 class 内的函数却不需要。
class 中:
let dragon = Dragon()
let dragon1 = dragon
此时 dragon 和 dragon1 指向的是同一实例,修改任意一方会同时修改两个实例;struct 则相反。
class 中的变量声明必须有初始值,否则会报错 has no initializer,但如果声明为
var message = String? 就不会报错。
- segue 是从一个 scene 过渡到另一个 scene 的动作,segue.identifier 是用来识别不同的 identifier 的,使用 segue 只需 performSegue 并传入 identifier 来识别要 perform 的是哪个 segue,以及 sender。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) 用来在执行过渡之前执行一些其他的动作,segue.destination as! DestinationViewController 用来指明 segue 的目标,
let destinationVC = segue.destination as! DestinationViewController 即可以把 segue 的目标 controller(一个 class)实例化为 destinationVC,即可以在过渡前来获取目标 class 中的变量并进行修改了。