对Swift中!和?简单解释

先上代码

var amiteLbl :UILabel?

self.amiteLbl = UILabel(frame:CGRectMake(50,100,200,40))

self.amiteLbl!.text = "I love mixbox"

self.view?.addSubview(self.amiteLbl)

最初从Objective-C转向Swift时,会有很多不适应,就比如我,看到这新的语法,会有一段学习的过程。
  在以上的代码中,由于新定义amiteLbl是可选变量,所以可能有值,也可能为nil。所以在不确值的情况下,我们用?后缀。
  使用self.amiteLbl!是明确声明此时self.amiteLbl里一定有值,无论什么情况都调用后面的.text赋值方法。
  这样做的目的一是让代码更明确, 二是给编译器提供更多线索,在编译时发现更多潜在错误。
  Swift显然是一门非常明确,需要开发者先想清楚再编程的语言,秉承了Apple一贯的作风。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,222评论 4 61
  • 问题 1)柯里化,通过柯里化,改造target-action,因为selector只能使用字符串,在编译时无法发现...
    lanjing阅读 8,935评论 3 19
  • 20开头的我们何尝不是如此。骄傲且莽撞,明明什么本事也没有却依旧狂妄自大,懦弱的逃避着,却埋怨这个世界辜负了你!—...
    爱吃酸豆角阅读 1,300评论 0 0
  • 终极目标:品质人生; 核心要素:只做一件重要的事。 具体操作: 1.why 方法论:多米诺骨牌效应; 例子:世界顶...
    自由飞行的鱼阅读 2,675评论 0 0
  • 今天来写一个老生常谈的话题,也是一个面试的高频问题,我也在面试时不止一次被问到过这个问题——如何高性能的设置圆角。...
    Originalee阅读 5,176评论 1 5