断言

作者: AZander | 来源:发表于2018-09-20 13:51 被阅读0次

在iOS开发中,可以使用宏NSAssert()在程序中进行断言处理。NSAssert()使用正确,可以帮助开发者尽快定位bug。开发者没有必要在应用程序的每个版本中都进行断言检查,这是因为大多数项目都是有两个版本:Debug版和Release版。在Debug版中,开发者希望所有的断言都检查到,而在Release版中,往往都是禁用断言检查的。设置Release版本中禁用断言的方法如下:

在Build Settings菜单,找到Preprocessor Macros项,Preprocessor Macros项下面有一个选择,用于程序生成配置:Debug版和Release版。选择 Release项,设置NS_BLOCK_ASSERTIONS,不进行断言检查。如下图所示。

image.png

下面,我们在一个 打印名字的函数里面,加入断言,以使程序在发现输入的名字为空时,抛出异常。

当传给函数的参数(myName)为空时,断言将被执行,程序Crash,并打印出断言中的描述信息。本例中,在控制台打印出了如下的日志:

**NSAssert[1268:a0b] *** Assertion failure in -[ViewController printMyName:] **

NSAssert/NSAssert/ViewController.m:38

2013-11-21 13:56:01.927 NSAssert[1268:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '****名字不能为空!****'

断言告诉我们,传入的参数不能为空,通过这个报错很容易就能确定错误发生的原因及位置。

如果,我们传入非空的参数,则程序会正确打印出传入的名字:

  • (void)printMyName:(NSString *)myName
    {
    NSAssert(myName != nil, @"名字不能为空!");
    NSLog(@"My name is %@.",myName);
    }

参考:

https://blog.csdn.net/univcore/article/details/16859263

相关文章

  • 客观断言和主观断言 阅读抄300

    客观断言和主观断言 在说明“结论”之前,我们先来区分客观断言和主观断言。客观断言(objective claim)...

  • Jmeter响应断言详解

    一、添加响应断言 选中需要进行断言的Sampler,右键添加 “断言” → “响应断言”。参数配置如下: 适用于:...

  • jmeter检查点

    1、添加响应断言,右键点击我们的“登录”页面---->添加---->断言---->响应断言 2. 设置响应断言 3...

  • 自学Swift之断言 assertion

    断言概念: 官方概念太无聊,并且冗余... 断言(assertion) 是一个全局函数 断言理解: 我理解的断言(...

  • Mock那些事儿(3):Mock的断言

    Mock的断言与unittest的断言不同,unittest的断言是判断结果是否正确,而mock的断言主要...

  • TestNG断言

    TestNG中的Assertion,也是断言。断言是测试中最难写的部分。 Assert类(硬断言) 断言类是Ass...

  • 2020-11-06 《批判性思维》day1 断言

    一、什么是断言? 在书中,断言是用来表达信念的,是一个陈述句,它可真可假。 二、类别 断言分为主观断言、客观断言这...

  • 一言力之断言力

    所谓断言,即明确表达说话人的意思;断言力,即敢于冒险提出断言的能力!断言力有什么用 通过断言,可以自然而然的产生一...

  • MAKE YOUR PREDICATE EXACT1

    使用准确的断言 仔细判断句子中的断言是否准确地断言了您想要断言的内容。比较这些句子,其中断言的部分是斜体: 和平已...

  • 批判性思维(一)

    1.客观断言与主观断言 在文章的开始,作者介绍两个非常有趣的定义。客观断言与主观断言,客观断言是认定的,固定的客观...

网友评论

      本文标题:断言

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