美文网首页IOS Crash
NSAssert 的简单使用

NSAssert 的简单使用

作者: 小老弟码代码 | 来源:发表于2020-10-10 15:35 被阅读0次

苹果在foundation.framework中定义了这么一个宏:

#define NSAssert(condition, desc, ...)

condition 书面意思为:状态、状况
在这里代表的是一个条件判断,值为YES 或者 NO;
desc 为异常描述,通常为NSString 。当condition为YES时程序继续运行,为NO 的时候,则抛出异常信息。NSAssert 可以出现在程序的任何一个位置。

注:在condition为NO时,在debug 模式下运行会终止程序,并抛出异常,但是在release模式下运行,不终止程序不抛出异常。

NSAssert和assert 区别

NSAssert和assert都是断言,主要的差别是assert在断言失败的时候只是简单的终止程序,而NSAssert会报告出错误信息并且打印出来.所以只使用NSAssert就好,可以不去使用assert。

NSAssert/NSCAssert

iOS中用的最多的是两对断言, NSAssert/NSCAssert 和 NSParameterAssert/NSCparameterAssert.
区别:NSAssert适合于ObjectC的方法,_cmd 和 self 与运行时有关. 后者是适用于C的函数。

NSParameterAssert/NSCparameterAssert

NSParameterAssert/NSCparameterAssert 两者的区别也是前者适用于Objective-C的方法,后者适用于C的函数。
实际开发中就用前者就可以了

NSAssert/NSCAssert 和 NSParameterAssert/NSCparameterAssert 的区别

NSAssert/NSCAssert 和 NSParameterAssert/NSCparameterAssert 的区别是前者是针对条件断言, 后者只是针对参数是否存在的断言, 调试时候可以结合使用,先判断参数,再进一步断言,确认原因.

NSParameterAssert的用法

- (void)assertWithPara:(NSString *)str{
    NSParameterAssert(str); //只需要一个参数,如果参数存在程序继续运行,如果参数为空,则程序停止打印日志
}

如果崩溃的情况下日志会告诉你崩溃在哪里

*** Assertion failure in -[ViewController assertWithPara:], /Users/yueniu/Desktop/TNTheme/YNTheme/ViewController.m:45
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: str'

菜鸟小老弟,如有不足,请多多指教!!!

相关文章

  • NSAssert 的简单使用

    苹果在foundation.framework中定义了这么一个宏: condition 书面意思为:状态、状况在这...

  • HQ移动20170317期周报

    1. NSAssert() 和 NSCAssert()的使用 NSAssert()用于 OC 语法的断言NSCAs...

  • 断言NSAssert的使用

    1. NSAssert 断言(NSAssert)是一个宏,在开发过程中使用NSAssert可以及时发现程序中的问题...

  • 断言

    在iOS开发中,可以使用宏NSAssert()在程序中进行断言处理。NSAssert()使用正确,可以帮助开发者尽...

  • NSAssert 断言

    NSAssert 是c语言的一个宏定义。 看一下具体定义: 具体使用: NSAssert(condition, ...

  • 封装时断言(NSAssert)的简单使用

    开发时,通用功能为了以后的方便使用,通常将其封装起来放到公司的私有库当中,有些封装就需要一些必传的值,但是当别人用...

  • IOS开发 日常踩坑记录

    Block 内部使用NSAssert导致的循环引用的问题

  • NSAssert()使用目的

    转自iOS开发中断言的使用—NSAssert()[https://blog.csdn.net/univcore/a...

  • NSAssert断言的使用

    NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否...

  • 一. NSAssert的使用

    NSAssert是一个预处理宏, 他的主要作用就是可以让开发者比较便捷的捕获一个错误, 让程序崩溃, 同时报出错误...

网友评论

    本文标题:NSAssert 的简单使用

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