美文网首页
Lecture2 MVC

Lecture2 MVC

作者: 快乐捣蛋鬼 | 来源:发表于2019-07-14 23:03 被阅读0次

Notes

1.lazy

延时初始化: 初始化该对象时需要用到其他还未初始化的对象,可以使用lazy懒加载,等到需要用到的对象初始化完成之后再初始化。
延时加载:优化方法,在构建和生成新的对象的时候,内存分配会在运行时耗费不少时间,如果有一些对象的属性和内容非常复杂的话,可以选择延时加载。另外,有些情况下我们并不会立即用到一个对象的所有属性,而默认情况下初始化时,那些在特定环境下不被使用的存储属性,也一样要被初始化和赋值,可以选择延时加载
使用lazy修饰的属性不可以再使用 didSet,因为属性被set的时间不确定。

lazy var game = ConcentrationRule(numberOfPairsOfCards: (flipCards.count + 1) / 2 )
var flipCount = 0 {
        didSet {
            flipCountLabel.text = "FlipCount: \(flipCount)"
        }
}

2.static

updating...

3. struct vs. class

struct 是值类型,class是引用类型
struct 不可以被继承,class可以被继承
常见的数据结构如: String,Array,Dic, Set 都是struct类型

4. copy-on-write (写时复制)

在Swift中,值类型有两种。一种是定长值类型,比如数值类型Int,Double,Float,还有一些只包含定长值类型的结构体(CGPoint)等等;另外一种叫做变长值类型,比如String,数组,字典等等。定长值类型都会保存在栈上,而变长值类型则会分配堆内存。
对于值类型的变长值类型,在复制时不一定是立刻就复制,而是在写入时,改变了原来的值时才复制。
因为栈上的空间是连续的,你总是通过移动栈尾指针去开辟和释放栈内存,而变长值类型中有一些成员在初始化的时候并不能确定它所占用的内存。比如集合类型,你可以随时往里面添加和删除元素,这会导致内存的增加和减少。类似的还有字符串,在内存中储存字符串实际上是存储的每一个字符,所以对于变长值类型并不能把全部内容都保存在栈上。在Swift中用了一种很巧妙的技术来实现变长值类型,那就是Copy-On-Write。
Copy-On-Write故名思议就是写时复制,当我们对变量进行写操作的时候会触发拷贝操作。但是我们也不能在每一次写入的时候都拷贝,思考一下,如果该变量的引用计数只有1,那就没有任何拷贝的必要。所以在拷贝前我们需要检测变量的引用计数是否唯一。在swift中提供了isKnownUniquelyReferenced,它能检查一个类的实例是不是唯一的引用。

相关文章

  • Lecture2 MVC

    Notes 1.lazy 延时初始化: 初始化该对象时需要用到其他还未初始化的对象,可以使用lazy懒加载,等到需...

  • Lecture2: Structure

    Lecture2 Structure Shared Memory Structure 多个processor连接到...

  • 托福听力2

    Tpo 1:Lecture2 Listen to part of a lecture in a geology c...

  • 和宠你的男人在一起,是多么的幸福?

    https://m.lizhiweike.com/lecture2/11122766?from_old_lectu...

  • 2020-04-11

    https://m.lizhiweike.com/lecture2/15635164?st=sharelink&i...

  • lecture2

    error来自bias 和variance PARRELLEL UNIVERSE 假定每个平行宇宙里的我抓了十个...

  • Lecture2

    Lecture2 视频链接[https://www.bilibili.com/video/BV1o7411L7dp...

  • Lecture2: Image Classification P

    Lecture2 Image Classification Pipeline 1. 图片在计算机中的储存方式&图像...

  • Spring MVC书目录

    MVC历史 MVC概念 为什么会出现MVC框架 常用的MVC框架 MVC模型的发展轨迹 简述Spring MVC的...

  • 钻石成功学1下

    Lecture2 我们前面讲到了种种子,我老师跟我说要,去纽约,去创业,要赚到100万美元,一年以内,我...

网友评论

      本文标题:Lecture2 MVC

      本文链接:https://www.haomeiwen.com/subject/zscwkctx.html