swift 摸石头过河

  1. .position(x:y:) 指定的位置,如果是在一个 stack 里的话是相对位置,vstack 是纵向相对,hstack 是横向相对

  2. CGFloat:横纵坐标,size:width height。

  3. mutating 可以修改 structure 里的 property。

  4. 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.

5.
struct & class

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? 就不会报错。

  1. 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 中的变量并进行修改了。

你可能感兴趣的:(swift 摸石头过河)