美文网首页
NSAssert知识

NSAssert知识

作者: _Lily | 来源:发表于2015-12-31 14:39 被阅读733次

assert 是C里面的宏。用于断言。

NSAssert 类似于NSLog(),方便易用。但她只能在Objective-c里面使用。是assert的一个扩充。能捕获assert类异常及打印一些可读的日志。而assert只是让app crash(abort)。

NSAssert(断言)是指在开发期间使用的、让程序在运行时进行自检的代码。断言为真,则表明程序运行正常,而断言为假,则意味着它已经在代码中发现了意料之外的错误。断言对于大型的复杂程序或可靠性要求极高的程序来说尤其有用。

NSAssert是foundation.framework中定义的一个宏:#define NSAssert(condition, desc, ...)第一个参数为一个条件判断,如果为假,则抛出异常,显示第二个参数所描述的信息。

比如:程序中会使用NSAssert(param.count==3,@"传入的参数不符合预期"); 以在debug模式下,校验数组param传入的参数个数是否正确,如果不正确则会打印日志:"传入的参数不符合预期",方便我们调试程序。

在release模式下运行,不终止程序不抛出异常,这样做很方便调试程序。当在真机中时,会自动忽略。调试cocoa程序在程序出错时,不会马上停止。使用宏NSAssert可以让程序出错时马上抛出异常。在debug情况下,所有NSAssert都会被执行。在release下不希望NSAssert被执行,我们通常在release种将断言设置成禁用。设置方法:在targets种选择build,选择release。

关于Xcode开发模式中的release与debug模式,请参考如下链接: http://my.oschina.net/leejan97/blog/296920

相关文章

  • NSAssert知识

    assert 是C里面的宏。用于断言。 NSAssert 类似于NSLog(),方便易用。但她只能在Objecti...

  • iOS断言(NSAssert)的用法

    NSAssert()介绍 NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()...

  • 使用NSAssert()和NSParameterAssert调试

    NSAssert: NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递...

  • AVPlayer相关笔记

    1.NSAssert NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递...

  • iOS 断言

    NSAssert定义:#define NSAssert(condition, desc, ...) //第一个参...

  • iOS一些开发中需要积累的知识

    1.NSAssert 调试的好帮手.断言 Exampe: NSAssert( x != 0, @"an erorr...

  • 断言NSAssert的使用

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

  • HQ移动20170317期周报

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

  • iOS中断言

    NSAssert为条件断言,不满住条件会打印后边的描述信息; NSAssert(<#condition#>, <#...

  • 断言NSAssert

    NSAssert与assert NSAssert和assert是断言,主要的差别是assert在断言失败的时候只是...

网友评论

      本文标题:NSAssert知识

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