美文网首页
尽可能地使用?声明的Optional

尽可能地使用?声明的Optional

作者: 年轻Jiayu | 来源:发表于2016-04-29 12:57 被阅读0次

    很多时候我会厌恶Optional<?>,因为它用起来实在太麻烦了。每次用的时候都需要判断或者解包,但是很多时候,你的一个不经意,会让程序奔溃,当然很多时候是因为隐式解析引起的,来看一下这一段简单的代码:

    class Worker {
        var codeValue: String!
        
        func code() {
            print(codeValue)
        }
    }
    var worker: Worker?
    worker?.code()
    

    这段代码在执行的时候不会奔溃,虽然内部的code函数的使用肯定会让程序导致奔溃,但是外面我定义了一个Optional<?>的Worker类型,在运行的时候,首先判断的是worker这个实例,因为这个实例为nil,所以不会执行以后的code函数了,也就不会产生奔溃了,当然这是使用Optional<?>的好处。

    但是也有例外的时候,很多时候Debug时使用Optional<!>让程序奔溃能让你很快知道哪里出错,就像delegate,如果你设置的是!,而在对应协议函数执行时,发现程序奔溃了,你就能马上明白是不是忘记在构造之前将上个控制器设置成delegate了,大大提升了你检查内部错误的效率。

    相关文章

      网友评论

          本文标题:尽可能地使用?声明的Optional

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