Object-c 使用 NSLog 打印日志 格式簡介
對于一個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,代表的字符與編譯器有關,一般也作為無符合整數使用。
評論
評論
推薦評論
全部評論(1條)