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

发布时间 - 2026-01-11 01:52:28    点击率:

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

NSAssert:

  NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述。NSAssert()是这样定义的:

#define NSAssert(condition, desc)

condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。

 下面介绍NSParameterAssert

   断言评估一个条件,如果条件为 false ,调用当前线程的断点句柄。每一个线程有它自已的断点句柄,它是一个 NSAsserttionHandler 类的对象。当被调用时,断言句柄打印一个错误信息,该条信息中包含了方法名、类名或函数名。然后,它就抛出一个 NSInternalInconsistencyException 异常。

Assertions evaluate a condition and, if the condition evaluates to false, 
call the assertion handler for the current thread, passing it a format 
string and a variable number of arguments. Each thread has its own assertion handler, 
which is an object of classNSAssertionHandler. When invoked, an assertion 
handler prints an error message that includes method and class names (or the function name). 
It then raises anNSInternalInconsistencyException exception.

  这个宏用于确认一个 Objective-C 的方法的有效性。简单提供参数作为条件就行。该宏评估这个参数,如果为 false ,它就打印一个错误日志信息,该信息包含了参数并且抛出一个异常。

This macro validates a parameter for an Objective-C method. Simply provide the
 parameter as the condition argument. The macro evaluates the parameter and, 
if it is false, it logs an error message that includes the parameter and then raises an exception.

  如果定义了预处理宏 NS_BLOCK_ASSERTIONS 断言就被禁止了。所有的断点宏都返回 void。

Assertions are disabled if the preprocessor macro NS_BLOCK_ASSERTIONS is defined. 
All assertion macros return void.

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# IOS  # 使用NSAssert()和NSParameterAssert  # NSAssert()和NSParameterAssert调试程序  # Java关于远程调试程序教程(以Eclipse为例)  # C#中利用断点操作调试程序的步骤详解  # Python中使用PDB库调试程序  # ubuntu用wifi连接android调试程序的步骤  # Android开发笔记之:一分钟学会使用Logcat调试程序的详解  # asp下调试程序的debug类  # 用bat实现删除系统脚本调试程序  # asp:debug类调试程序  # Linux应用程序使用写文件调试程序的方法  # 句柄  # 抛出  # 它就  # 包含了  # 是这样  # 出现在  # 它是  # 就行  # 希望能  # 自定义  # 任何一个  # 只是一个  # 谢谢大家  # 错误信息  # 值为  # strong  # NSInternalInconsistencyException  # NSParameterAssert  # NSAsserttionHandler 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 使用C语言编写圣诞表白程序  在centOS 7安装mysql 5.7的详细教程  新三国志曹操传主线渭水交兵攻略  如何在 Pandas 中基于一列条件计算另一列的分组均值  php 三元运算符实例详细介绍  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel怎么在Controller之外的地方验证数据  利用vue写todolist单页应用  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何实现API速率限制?(Rate Limiting教程)  jQuery中的100个技巧汇总  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel如何与Pusher实现实时通信?(WebSocket示例)  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  JavaScript数据类型有哪些_如何准确判断一个变量的类型  iOS发送验证码倒计时应用  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  如何在云虚拟主机上快速搭建个人网站?  香港服务器部署网站为何提示未备案?  Laravel如何实现本地化和多语言支持?(i18n教程)  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  详解vue.js组件化开发实践  如何在企业微信快速生成手机电脑官网?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  音响网站制作视频教程,隆霸音响官方网站?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel如何为API生成Swagger或OpenAPI文档  如何快速生成橙子建站落地页链接?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何快速搭建高效香港服务器网站?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Java遍历集合的三种方式  iOS中将个别页面强制横屏其他页面竖屏  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何在万网主机上快速搭建网站?  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  如何在建站宝盒中设置产品搜索功能?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全