美文网首页Swift学习Swift
Swift Day15 断言 访问控制 内存管理 循环引用

Swift Day15 断言 访问控制 内存管理 循环引用

作者: 望穿秋水小作坊 | 来源:发表于2020-12-16 22:10 被阅读0次

    一、断言、访问控制

    1. Self 和 self 有什么区别?
    • Self 一般代表当前类型
    • self 一般代表当前实例对象
    Self 和 self 有什么区别?
    2. 断言(assert)的机制是什么?断言和错误(Error)有什么区别?
    • 断言机制:不符合指定条件就抛出运行时错误,常用于调试(Debug)阶段的条件判断
    • 默认情况下,Swift 的断言只会在 Debug 模式下生效,Release 模式下会忽略
    • 错误:可以进行捕获处理,会出现在 Debug 和 Release 模式
    断言的使用
    3. 什么是 fatalError?(了解)
    fatalError
    4. 范围控制的 5 个级别是那五个?(了解)
    • open、public、internal、fileprivate、private
    • 在全局作用域下定义的 private 等价于 fileprivate
    image.png

    二、内存管理

    1. Swift 借助什么技术管理内存?强应用、弱引用、无主引用分别是什么?有什么作用?
    内存管理
    2. weak、unowned 只能用在类实例上面吗?
    • 是的
    image.png
    3. weak、unowned 在解决循环引用上有什么区别?
    image.png
    4. 数一下这个过程中的 retain 和 release 数目,看看是否相等,体会一下用汇编观察是否产生循环引用,感觉很有趣
    image.png
    5. 闭包的循环引用问题
    image.png
    6. 逃逸闭包和非逃逸闭包的区别?
    image.png

    相关文章

      网友评论

        本文标题:Swift Day15 断言 访问控制 内存管理 循环引用

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