NSAssert()使用目的

2020-09-24  本文已影响0人  怪客半

转自iOS开发中断言的使用—NSAssert()

全新的理解:

内部环境与外部环境的概念

对来源于内部系统的可靠的数据使用断言,而不要对外部不可靠的数据使用断言,对于外部不可靠数据,应该使用错误处理代码。断言可以看成可执行的注释。

断言是守卫,确定边界,避免臃肿代码

系统外部的数据(用户输入,文件,网络读取等等)都是不可信的,需要严格检查(通常是错误处理)才能放行到系统内部,这相当于一个守卫。而对于系统内部的交互(比如子程序调用),如果每次也都去处理输入的数据,也就相当于系统没有可信的边界了,会让代码变的臃肿复杂;而事实上,在系统内部,传递给子程序预期的恰当数据应该是调用者的责任,系统内的调用者应该确保传递给子程序的数据是恰当可以正常工作的。这样一来,就隔离了不可靠的外部环境和可靠的系统内部环境,降低复杂度。

书籍推荐

《代码大全2》,上面的内容都来自其中防御式编程的章节。

上一篇 下一篇

猜你喜欢

热点阅读