`

NSAssert

 
阅读更多

You can use NSAssert() to debug your code, just like NSLog().

i.e.

NSAssert(X <= 0, @"x must large than zero!");

 

 

If x<=0 return NO , it will throw exception.You can see a message "x must large than zero!", and also other related details.

 

 

调试cocoa程序在程序出错时,不会马上停止。使用宏NSAssert可以让程序出错时马上抛出异常。
在debug情况下,所有NSAssert都会被执行。在release下不希望NSAssert被执行,我们通常在release种将断言设置成禁用。
设置方法:在targets种选择build,选择release。在gcc preprocessing下增加Preprocessor Macros 值为 NS_BLOCK_ASSERTIONS.

分享到:
评论

相关推荐

    IOS 使用NSAssert()和NSParameterAssert调试程序

    `NSAssert()`和`NSParameterAssert()`是Apple提供的两种强大的调试工具,它们可以帮助开发者在开发阶段快速定位并修复问题。下面我们将详细探讨这两个宏的使用方法和作用。 首先,`NSAssert()`是一个用于调试目的的...

    AGAssert:与 NSAssert 类似,但日志记录略有改进,旨在与发布中的应用程序一起提供

    AGAssert 与 NSAssert 类似,但日志记录略有改进,旨在随发布的应用程序一起提供。 使用它而不是 NSAssert 的好处: 它在所有配置中都是默认的,因为它使用AG_BLOCK_ASSERTIONS而不是NS_BLOCK_ASSERTIONS 。 稍微...

    腾讯2015春招移动、PC客户端开发练习卷合集.docx

    - **NSAssert系列宏**:在Objective-C编程中,为了确保代码逻辑的正确性并提供调试支持,常常使用断言宏。`NSAssert`是最常用的断言宏之一,除了它之外还有其他的变体: - `NSAssert1` - `NSAssert2` - `NSAssert...

    Sqlite扩展

    例如,在`openDatebase`方法中,如果打开数据库失败,`NSAssert`将抛出一个断言,指出错误的信息和原因,这有助于开发者快速定位问题所在。 ### 总结 通过以上分析,我们可以看到`Sqlite`类提供了一套完整的接口来...

    ios Crash异常捕捉demo

    `SIGABRT`是一个Unix系统级别的信号,通常由`abort()`函数调用触发,也可能是由于编译器检测到未初始化的变量或者`NSAssert`在非调试模式下失败引发。在iOS中,未捕获的`NSException`异常也会导致`SIGABRT`。为了...

    iPhone Application Programming L05: Debugging and Performance Tuning

    NSAssert(name != nil, @"name must be defined"); // 捕获异常 @try { // 可能会抛出异常的代码 } @catch (NSException *exception) { // 处理异常 } @finally { // 清理工作 } ``` 此外,文件还提到了一个...

    基于IPHONE与SQLLITE数据库的应用介绍

    NSAssert(0, @"Failed to open database"); } // 创建表 NSString *createTableSQL = @"CREATE TABLE IF NOT EXISTS Fields (Row INTEGER PRIMARY KEY, Field_Data TEXT)"; if (sqlite3_exec(database, [create...

    iOS游戏应用源代码——AvalonGameArt-CVS-Tycoon.zip

    8. **错误处理和日志**:了解如何使用NSAssert、异常处理及日志记录,这对于调试和维护代码至关重要。 通过以上分析,我们可以从"AvalonGameArt-CVS-Tycoon"源代码中学习到iOS游戏开发的全貌,从底层逻辑到上层表现...

    iphone mysql数据库操作代码例子.docx

    在实际开发中,可能需要更完善的错误处理机制,比如使用`NSAssert`进行断言,或者抛出异常,以便于追踪和修复问题。 7. **内存管理**: 在SQLite操作中,`sqlite_transient`标记用于指示绑定的字符串是临时的,...

    ios解析crash示例文件上传

    - 使用`NSAssert`和` Preconditions`进行代码验证,确保输入参数的有效性。 - 代码审查和单元测试:定期进行代码审查,编写单元测试,尽早发现潜在问题。 6. **崩溃日志收集和上报:** - 可以集成如Fabric/...

    简书iOSDemo

    开发者通常会使用NSAssert进行断言检查,以及NSLog或第三方日志库记录运行时信息。 总的来说,【简书iOSDemo】涵盖了iOS应用开发的多个关键方面,包括Objective-C编程、Xcode使用、UI设计、网络请求、数据存储以及...

    苹果_Cocoa_编码规范(中文版)

    例如,“NSLog”、“NSAssert”。 #### 七、实例变量与数据类型命名 - **实例变量:** 实例变量的命名应简洁明了,通常使用小写字母开头。例如,“_myVariable”。 - **常量:** 常量命名通常全部大写,使用下划线...

    ios猜数字游戏源码

    6. **错误处理和调试**:源码中可能包含错误处理代码,例如使用NSAssert进行断言,或者使用try-catch结构处理异常。这对于学习如何编写健壮的代码非常重要。 7. **MVC(Model-View-Controller)架构**:iOS开发通常...

    MyUncaughtExceptionHandler.zip

    - 在发布版本中,考虑使用`NSAssertionHandler`来替换调试时的`NSAssert`,以避免生产环境中因断言失败而导致的应用崩溃。 6. **测试和调试**: - 在开发过程中,充分的单元测试和集成测试有助于发现可能导致异常...

    企业级ios应用开发实战11

    本章详细介绍了如何使用NSAssert进行断言,利用Xcode的调试工具如LLDB进行代码调试。 8. **UI动态性**:为适应不同屏幕尺寸和设备,我们讲解了Auto Layout和Size Classes技术,使用户界面能够自适应地调整布局。 9...

    Professional.iOS.Programming

    书中会讲解如何使用NSAssert、异常处理和Xcode的调试工具来定位和修复问题。 8. **性能优化**: 优化应用性能对于提升用户体验至关重要。书中会探讨内存管理、代码优化技巧,以及如何利用 Instruments 工具进行...

    iOS防崩溃及闪退demo

    例如,`NSAssert`可以在条件不满足时打印一条错误消息并停止执行。在发布版本中,断言通常是被禁用的,因此不会影响用户。 5. **日志记录(Logging)**:当应用崩溃时,记录详细的日志信息至关重要,可以帮助开发者...

    iOS简单版防崩溃处理

    - **断言(Assertions)**:通过使用`NSAssert`或`assert`,可以在开发阶段检查条件,如果条件不满足则终止程序,帮助定位问题。 - **自定义异常处理**:可以实现`NSSetUncaughtExceptionHandler`来设置全局的未捕获...

    ios 移动开发代码规范

    8. 使用`NSAssert`进行断言,确保程序在非预期情况下能尽早发现错误。 通过遵循上述代码规范,可以确保你的iOS项目具有高质量的代码基础,这对于长期的项目维护和团队协作至关重要。同时,良好的代码规范也能反映出...

Global site tag (gtag.js) - Google Analytics