swift中? ! weak unowned的跟人理解

Posted hazhade

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift中? ! weak unowned的跟人理解相关的知识,希望对你有一定的参考价值。

?相当于给属性套上一层包,即为一个Optional值,而Optional有None和Some两个值,该属性在定义时未初始化结果就是swift自动初始化为nil值(就是Optional中的None,本质上是有值的),在使用过程中当该属性为nil时其实其值为.None而进行判断;秉着严谨的态度我们应该在使用前进行 if value {}的判断;而!是相对于隐式拆包,在调用过程都会默认的添加上!;

SO:在控制器中我们已确定添加的控件在viewDidLoad中初始化,且基本不会在生命周期内销毁,所以考虑都用!  而相对的一些常变的string,cgfloat类型的属性,在周期内可能为空,所以用?

作用:属性中?是为了避免为nil而crash,而!避免重复判断,高效而简洁

 

以上是关于swift中? ! weak unowned的跟人理解的主要内容,如果未能解决你的问题,请参考以下文章

swift进阶七:引用计数(Strong、Unowned、Weak)

[随笔]swift 笔记

Swift 内存管理与循环引用问题(weakunowned)

如何在 Swift 中识别强引用循环?

Swift Closures - 将自己视为弱者

如何在Swift中识别出强大的参考周期?