让不懂编程的人爱上iPhone开发(2020春iOS13+Swift5.1+Xcode11版)-09

让不懂编程的人爱上iPhone开发(2020春iOS13+Swift5.1+Xcode11版)-09

欢迎继续我们的学习。

一起来“抓虫”-处理错误提示信息

当我们点击Xcode工具栏上的右三角运行按钮时,有可能会看到Xcode给出一个’Build Failed’的错误提示信息。

Xcode的编译器是非常敏感的,即便是最小的错误也可能让Xcode感到迷惑。即便是非常熟练的编程老手,想要第一时间迅速找到错误的原因也不是那么简单的事情。

有时候可能只是源代码中的一个小小的拼写错误,都可能导致整个项目的崩溃。

在iOS开发的过程中,一个常见的代码错误就是大小写。Swift语言是一门大小写敏感的编程语言,也就是说在它的眼里,Alert和alert是不同的两个事物。如果出现这样的书写错误,Xcode就会提示,<something> undeclared,或是’Use of unresolved identifier’。当Xcode提示’Parse Issue’或’Expected <something>’时,很可能就是你忘了添加花括号}或是大括号)。

实际上,前后括号没有一一对应也是编写代码中的一个常见错误。

小技巧:

在Xcode中,有很多种方法可以确保括号是否对齐。当你把光标移动到右括号时,Xcode会自动高亮对应的左括号。

此外,当按下键盘上的command键时,将鼠标的光标移动到括号中的某一行代码时,Xcode会自动高亮括号之间的整个代码段。

在编写代码的时候,这些看起来细微的细节同样很重要。

一处拼写错误可能就会让全局崩溃,其实这一点不能完全怪开发者,只能说现在的编译器真的不够“智能”,不能完全“理解”开发者的偷懒意图,也不能容忍一些哪怕最初级的无心之过。在这方面,跟最早期的编程语言相比并没有什么明显的进步。

虽然AI现在越来越流行,但是很多地方还是需要人工来介入的,离所谓的“通用智能”还差了几亿光年的距离。

好了,不吐槽了。

幸运的是,类似这种拼写的小错误,虽然不能忽略或完全自动修复,但当代的主流编译器已经可以很轻松的发现并指出错误。

比如:

当Xcode检测到某处代码错误时,会在不同的地方使用红色错误提示符号。

对国内的开发者来说,更常犯的错误可能不是遗漏这些符号,而是不小心用中文输入法中的全角符号替代了英文的半角符号,这一点切记。

点击Diagnostics按钮,就可以看到xcode的耐心解释。

点击代码编辑器上的红色提示按钮,会看到类似下面的小提示框,

在这里,点击Fix按钮,Xcode会自动帮你解决这处错误。

接着你会发现错误消失了,整个世界清静了。

所以,刚才我说的有点过分,当代的编译器相比几十年前多少还是有点进步的。虽然做不到对错误视而不见,或者完全自动修复,但至少可以比较“智能”的发现问题所在,甚至可以在提示的前提下半自动的修复错误。

关于错误和警告

在Xcode中,对于代码中可能存在的问题,会使用红色的错误和黄色的警告来区别。对于程序这个生命体来说,错误是致命的。当我们看到红色的错误提示时,意味着如果不解决它,整个应用都无法正常运行。

警告信息更多是一种提示,Xcode使用这种方式告诉你,“虽然存在一些隐患,但你还是可以继续。”

简单来说,红色的错误提示就是红牌警告,黄色警告则是一种友善的提醒。

话虽这么说,在能力允许的范围内,最好还是把警告信息当做错误来处理。

理想的情况下,我们希望整个应用可以实现零错误零警告。

不过,最后的最后,希望告诉大家,即便整个项目代码里面零错误零警告,也可能在实际运行的时候出现一些未知错误。

总之,一旦迈入编程门,就会消耗猿生至少50%以上的时间用来解决各种bug,处理各种不尽人意的问题。可能是你的前任留下的,也可能是你自制的~

好了,本课的学习到这里就结束了,我们下一课再见~

相关示例代码会随后传到github:

eseedo/iOSCoursegithub.com图标

编辑于 05-23

文章被以下专栏收录