iOS 中 NSParameterAssert 是干啥的之官方解释翻译篇

iOS 中 NSParameterAssert 是干啥的之官方解释翻译篇

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

讨论 Discussion

断言评估一个条件,如果条件为 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.

时间: 2024-11-10 10:13:08

iOS 中 NSParameterAssert 是干啥的之官方解释翻译篇的相关文章

iOS中使用schema协议调用APP和使用iframe打开APP的例子_IOS

在iOS中,需要调起一个app可以使用schema协议,这是iOS原生支持的,并且因为iOS系统中都不能使用自己的浏览器内核,所以所有的浏览器都支持,这跟android生态不一样,android是可以自己搞内核的,但是iOS不行. 在iOS中提供了两种在浏览器中打开APP的方法:Smart App Banner和schema协议. Smart App Banner 即通过一个meta 标签,在标签上带上app的信息,和打开后的行为,例如:app-id之类的,代码形如: 复制代码 代码如下: <m

ios-需要在IOS中设置延迟功能

问题描述 需要在IOS中设置延迟功能 需要一个延时器,进行23秒的延迟然后执行函数.应该怎么实现?用不用NSTimer? 解决方案 performSelector: withObject: afterDelay: 解决方案二: 简单点的话,使用performSelector: withObject: afterDelay: 方法 [self performSelector:@selector(delayMethod:) withObject:nil afterDelay:23];

error-请教iOS中CMPedometer的用法

问题描述 请教iOS中CMPedometer的用法 10C #import @implementation FirstViewController (void)viewDidLoad { [super viewDidLoad]; [CMPedometer isStepCountingAvailable]; CMPedometer *pedonmeter = [[CMPedometer alloc] init]; [pedonmeter startPedometerUpdatesFromDate:

IOS中KVC与KVO的应用解析

IOS中KVC与KVO的应用解析 一.NSKeyValueCoding(KVC) 1.从一个小例子引入 KVC键值编码是Object-C为我们提供的一种对成员变量赋值的方法.在探讨其方法之前,我们先来看一个小例子: 首先,创建一个数据模型model类: ? 1 2 3 4 5 6 7 8 //.h文件 #import <Foundation/Foundation.h> @interface Model : NSObject {     @public//将成员变量设置为公有的 以便其他文件有访

IOS中JSON数据的解析

IOS中JSON数据解析 官方为我们提供的解析JSON数据的类是NSJSONSerialization,首先我们先来看下这个类的几个方法: + (BOOL)isValidJSONObject:(id)obj; 判断一个数据对象是否可以转化为JSON数据 + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error; 将JSON数据写为NSData数据,其中opt参数

iOS中read it later阅读界面隐性导航设计

文章描述:iOS中read it later软件的阅读界面. 移动设备阅读类软件最重要的特性之一就是尽可能的增大阅读面积,为此,就必须尽可能的让屏幕中的导航占到最小,甚至隐藏,手机浏览器也基本属于阅读类软件,最近流行的海豚浏览器甚至将电脑中的"鼠标手势"引入到手机浏览器中. 什么是隐性导航 下图是iOS中read it later软件的阅读界面,除了最上方的状态栏,阅读区域占满了整个屏幕,没有任何诸如"返回"."关闭"的导航按钮,实际这些按钮是隐

iOS中设置应用程序图标和引导画面

一个好的应用程序图标,不仅会给用户留下良好的第一印象,而且可以帮助用 户在茫茫多的桌面图标中,快速发现你的应用程序.本文将介绍如何把已经设计 好的图标以及启动图片添加到我们的应用程序. 大纲 图标的规格及说明: 启动图片规格及说明: 添加素材演练: 设定启动图片显示时间. 一. 图标规格及说明 iOS中图标的名称及规格见下表: 三. 添加素材演练 在以前版本的Xcode中,添加图标和启动图片相对有些麻烦,而且苹果默认给 图标增加了高光效果,但是对于美工来讲,这种高光效果往往达不到预期效果. 在X

IOS中UITabBar的常用设置

UITabBar十分常用,它能实现多个页面的快速切换,而且看起来简单实用. 假设我这有多个 已经初始化好的viewController,然后需要将它们加入到TabBarController中,并把其设置为根视图 NSArray *views = [[NSArray alloc] initWithObjects:test, time, test1, test2, test3, test4, nil]; UITabBarController *tbc = [[UITabBarController a

iOS中SQLite数据库使用详解

使用SQLite数据库 创建数据库 创建数据库过程需要3个步骤: 1.使用sqlite3_open函数打开数据库: 2.使用sqlite3_exec函数执行Create Table语句,创建数据库表: 3.使用sqlite3_close函数释放资源. 这个过程中使用了3个SQLite3函数,它们都是纯C语言函数,通过Objective-C去调用C函数当然不是什么问题,但是也要注意Objective-C数据类型与C数据类型兼容性问题. 下面我们使用SQLite技术实现备忘录案例,与属性列表文件实现