• 关于swift的guard使用一定要慎用


      很久没有更新博客,因为换了工作环境,适应了一段时间,哎,年龄大了就是这样,适应一件事要花很多时间,不过不管怎么说,过程虽然磕磕绊绊,但总的来说还是美好的。额,闲话不多说,来看看今天要唠的话题是什么。

      进入新的工作环境后,iOS的编写已经从oc过渡到swift,因为常年使用oc,所以老实说,在使用swift的过程中遇到了许许多多奇葩的问题,今天要说的就是问题之一,尽管看起来很弱智的问题,但是我确实做到了。

      swift新推出的guard关键字,直译为保护,帮助保护不安全的解包,防止强制解包导致程序crash,刚开始使用的时候,真的是非常爽,比如这个样子。

      一旦提取的object不符合条件要求,这个方法就会直接return不会向下进行,如果符合要求,程序就会继续向下运行,而且,敲黑板了,data的使用区域不受guard括号的范围限制,这是与if判断不同的,上代码。

      

      使用if判断保护的变量,使用返回仅限于if的括号范围内,这就导致使用这个变量的代码,只能写在if括号范围之内,十分不方便,也不够优美。对,不够优美,但这并不表示可以随便使用guard这个关键字,因为,因为....上代码。

      

      在for,while,do-while等循环语句中使用guard,一旦变量不存在,就会直接跳出函数方法,导致剩下循环没办法进行,当程序使用数组的时候,容易造成数组越界,从而发生crash,这个问题很低级,但是我确实脑抽的发生了,造成很严重的后果,所以,写这边博客,一是记录一下自己的错误,二是提醒其他iOS开发者,尽量避免与我同样的错误。

      最后祝大家永无bug!!!!

  • 相关阅读:
    阿里云OSS对象存储 简单上传文件
    [转]eclipse查看某个java类属于哪个jar包
    win7自带照片查看器
    代码规范,李师兄的指导
    Python 结巴分词模块
    Python requests模块
    CTF
    Python requests模块在Windows下安装
    CentOS 6.5部署HTTP WEB服务器和FTP服务器
    Django搭建博客后台
  • 原文地址:https://www.cnblogs.com/xuruofan/p/9967754.html
Copyright © 2020-2023  润新知