Object-c 使用 NSLog 打印日志 格式简介

举报 2015-01-19

对于一个Object-C语言的初学者,一定会经常看到的打印NSLog这个方法,但是对于需要打印的信息的格式化又很难分清楚何时该用哪种方式格式化,Object-C对格式化数据要求比较严格,所以对要打印的数据如果格式化方式不正确是无法打印出自己想要的结果的。在此整理一下NSLog 的格式:

%@ 对象  
%d, %i 整数  
%u 无符整形  
%f 浮点/双字  
%x, %X  二进制整数  
%o 八进制整数  
%zu size_t  
%p 指针  
%e 浮点/双字 (科学计算)  
%g 浮点/双字  
%s C 字符串  
%.*s Pascal字符串  
%c 字符  
%C unichar  
%lld 64位长整数(long long)  
%llu 无符64位长整数  
%Lf 64位双字

基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是chat *这种字符串指针。

NSLog可以如下面的方法使用: 

NSLog (@”this is a test”);    
NSLog (@”string is :%@”, string);
NSLog (@”x=%d, y=%d”, 10, 20);

声明对象的类型决定了,NSLog的打印格式。


附上Object-C的基本数据类型


    Objective-C数据类型可以分为:基本数据类型、对象类型和id类型。基本数据类型有:int、float、double和char类型。对象类型就是类或协议所声明的指针类型,例如:NSAutoreleasePool * pool,其中NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型。id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型。

int类型


int类型代表整数,它的十六进制表示方式:0xFFED0D,在使用NSLog函数中格式化字符串使用%i表示十进制的整数,%o(字母o)表示8进制整数,%#x表示十六进制整数。它的取值范围是与设备相关的,无法一概而论。

float类型


float类型代表单精度浮点数,要表示float类型浮点数,可以在数值后面加上f或F,例如:13.5f。float浮点数也可以用科学计数法表示,例如:1.7e4。NSLog函数中格式化字符串:%f表示浮点数,%e表示科学计数法,%g表示浮点数。

double类型


double类型代表双精度浮点数,与float类型很相似,占用的字节空间double类型大体上是float类型的两倍。大多数计算机是用64位表示double类型。NSLog函数中格式化字符串,与float的%f、%e和 %g相同。

char类型


char类型代表字符类型,存放点个字符,用单引号引用起来。例如: 'A',如果要表示一些特殊字符,要使用转义字符“\”。

Obejctive-C中数据类型可以在int、float、double和char类型前面加上限定词,限定词有:long、long long、short、unsigned和signed,这些限定词从而增强了基本类型。

long int,在大部分计算机中代表32位整数,在整数后面加L(或l)表示,例如:long int numberOfPoints = 131071100L,NSLog函数中格式化字符串使用%li表示;


long long int可以指定更加宽泛的整数类型,保证变量至少64位宽度。NSLog函数中格式化字符串使用%lli表示;

long double ,可以指定更加宽泛的double类型,要显示这个可以在尾部使用L(大小写)表示,1.234e+7L。NSLog函数中格式化字符串使用%Lf、%Le和%Lg表示;

short int用来指定存放相对小的整数,一般是占用int类型的一半。大部分计算机是16位;

unsigned int,告诉编译器只是接受整数,在数值之后放字母u(或U)表示,例如:0x00ffU;编写整数时候,可以将字母u(或U)和l(或L)组合起来,例如:20000UL;


signed char,代表的字符与编译器有关,一般也作为无符合整数使用。

    参与评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    DIGITALING
    登录后参与评论

    参与评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    800

    推荐评论

    全部评论(1条)