函数及类似函数的宏

断言

NSAssert

说明:如果给定的条件为假,则产生一个断言。

使用:NSAssert(condition, desc, ...);

类型:宏

注意:

  • 这个宏只能在Objective-C方法中使用

  • 如果定义了预处理宏NS_BLOCK_ASSERTIONS,那么断言会被禁用。

  • 不要在该宏的condition参数中调用函数,因为当宏被禁用时,condition参数不会被求值,函数也就不会被调用。


NSAssert1

说明:如果给定的条件为假,则产生一个断言。

使用:NSAssert1(condition, desc, arg1);

类型:宏

注意:

  • 该宏与NSAssert的区别在于第三个参数的数量


NSAssert2

说明:如果给定的条件为假,则产生一个断言。

使用:NSAssert2(condition, desc, arg1, arg2);

类型:宏


NSAssert3

说明:如果给定的条件为假,则产生一个断言。

使用:NSAssert3(condition, desc, arg1, arg2, arg3);

类型:宏


NSAssert4

说明:如果给定的条件为假,则产生一个断言。

使用:NSAssert4(condition, desc, arg1, arg2, arg3, arg4);

类型:宏


NSAssert5

说明:如果给定的条件为假,则产生一个断言。

使用:NSAssert5(condition, desc, arg1, arg2, arg3, arg4, arg5);

类型:宏


NSCAssert

说明:如果给定的条件为假,则产生一个断言。

使用:NSCAssert(condition, NSString *description);

类型:宏

注意:

  • 这个宏只能在C方法中使用(与NSAssert的区别在于此)

  • 如果定义了预处理宏NS_BLOCK_ASSERTIONS,那么断言会被禁用,所有宏返回void

  • 不要在该宏的condition参数中调用函数,因为当宏被禁用时,condition参数不会被求值,函数也就不会被调用。


NSCAssert1

说明:如果给定的条件为假,则产生一个断言。

使用:NSCAssert1(condition, NSString *description, arg1);

类型:宏

注意:

  • NSCAssert的区别在于参数数量


NSCAssert2

说明:如果给定的条件为假,则产生一个断言。

使用:NSCAssert2(condition, NSString *description, arg1, arg2);

类型:宏


NSCAssert3

说明:如果给定的条件为假,则产生一个断言。

使用:NSCAssert3(condition, NSString *description, arg1, arg2, arg3);

类型:宏


NSCAssert4

说明:如果给定的条件为假,则产生一个断言。

使用:NSCAssert4(condition, NSString *description, arg1, arg2, arg3, arg4);

类型:宏


NSCAssert5

说明:如果给定的条件为假,则产生一个断言。

使用:NSCAssert5(condition, NSString *description, arg1, arg2, arg3, arg4, arg5);

类型:宏


NSCParameterAssert

说明:用于验证一个C函数的参数,如果对参数的求值结果为false,则打印包含参数的错误信息,然后抛出一个异常。

使用:NSCParameterAssert(condition);

类型:宏

注意:

  • 如果定义了预处理宏NS_BLOCK_ASSERTIONS,那么断言会被禁用,所有宏返回void


NSParameterAssert

说明:用于验证一个Objective-C方法的参数,如果对参数的求值结果为false,则打印包含参数的错误信息,然后抛出一个异常。

类型:宏

注意:

  • 如果定义了预处理宏NS_BLOCK_ASSERTIONS,那么断言会被禁用,所有宏返回void




NSLocalizedString

说明:返回一个字符串的本地化版本

使用:NSString *localStr = NSLocalizedString(NSString *key, NSString *comment);

类型:宏

注意:

  • 使用该宏来生成默认的Localizable.strings文件


NSLocalizedStringFromTable

说明:返回指定表中字符串的本地化版本

使用:NSString *localStr = NSLocalizedStringFromTable(NSString *key, NSString *tableName, NSString *comment);

类型:宏

注意:

  • 使用该宏来生成[tableName].strings文件


NSLocalizedStringFromTableInBundle

说明:返回一个字符串的本地化版本

使用:NSString *localStr = NSLocalizedStringFromTableInBundle(NSString *key, NSString *tableName, NSBundle *bundle, NSString *comment);

类型:宏

注意:

  • 使用该宏在指定的包中生成[tableName].strings文件


NSLocalizedStringWithDefaultValue

说明:返回一个字符串的本地化版本

使用:NSString *localStr = NSLocalizedStringWithDefaultValue(NSString *key, NSString *tableName, NSBundle *bundle, NSString *value, NSString *comment);

类型:宏

注意:

  • 使用该宏在指定的包中生层[tableName].strings文件




字节排序

NSConvertHostDoubleToSwapped

说明:将指定的双精度浮点数的值转换成可以交换字节的值

使用:NSSwappedDouble result = NSConvertHostDoubleToSwapped(double x);

注意:

  • 该函数并不会真的交换x的字节
  • 你不应该直接调用该函数


NSConvertHostFloatToSwapped

说明:将指定的单精度浮点数的值转换成可以交换字节的值

使用:NSSwappedFloat result = NSConvertHostFloatToSwapped(float x);

注意:

  • 该函数并不会真的交换x的字节
  • 你不应该直接调用该函数


NSConvertSwappedDoubleToHost

说明:将指定的值转换为双精度浮点数值

使用:double result = NSConvertSwappedDoubleToHost(NSSwappedDouble x);

注意:

  • 该函数并不会真的交换x的字节
  • 你不应该直接调用该函数


NSConvertSwappedFloatToHost

说明:将指定的值转为单精度浮点数值

使用:float result = NSConvertSwappedFloatToHost(NSSwappedFloat x);

注意:

  • 该函数并不会真的交换x的字节
  • 你不应该直接调用该函数


NSHostByteOrder

说明:返回字节存储次序格式:NS_LittleEndianNS_BigEndian

使用:long result = NSHostByteOrder();