------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流!
-------
在Objective-C中,任何數字、單個字符和字符串通常都稱爲常量。完全由常量值組成的表達式叫常量表達式。
1. int類型
整數常量由一個或多個數字的序列組成。
這裏要注意設備或機器相關量。即我們通常說的int是32位還是64位取決於CPU的總線寬度。
在Mac OS X中,提供了選擇應用程序是在32位還是64位下編譯。在前一種情況下,一個int佔用32位;在後一種情況下,一個int佔用64位。
2.float類型
聲明爲float類型的變量可以存儲包含小數位的值。
float floatingVar = 331.79;
NSLog(@"floatingVar = %f", floatingVar);
這裏的輸出結果爲floatingVar = 331.790009
這說明實際顯示的值是由具體使用的計算機系統決定的。出現這種不準確值的原因在於,計算機內部使用了特殊的方式表示數字。
同樣的不確定性也出現在:在計算機內存中不能精確地表示一些浮點值。
所以,我們在進行float或double的值比較時,一定要考慮這一點。這也是爲什麼float值和0相等的比較需要寫成下面表達式的原因:
if(x>0.000001&&x<-0.000001)
3.char類型
char變量可存儲單個字符。將字符放入一對單引號中就能得到字符常量。如:’a‘。
不要把字符常量和c語言風格的字符串混爲一談,字符常量是放在單引號中的字符,而字符串則是放在雙引號中的任意個數的字符。
字符常量’\n‘(即換行符)是一個合法的字符常量,儘管它似乎與前面提到的規則矛盾。
4.限定詞:long、long long、 short、unsigned及signed
4.1long int
如果直接把限定詞long放在int聲明之前,那麼所聲明的整型變量在某些計算機上具有擴展的值域。
long變量的具體範圍也是由計算機系統決定的。
4.2long long int
4.3short int
4.4unsigned int
5.id類型
id數據類型可存儲任何類型的對象。從某種意義上說,它是一般對象類型。
id類型是Objective-C中十分重要的特性,它是多態和動態綁定的基礎。
下面整了個表,看着比較容易點。
http://blog.sina.com.cn/s/blog_6dda522b0100y8bp.html
類型 |
常量實例 |
NSlog字符 |
Char |
‘a’,’/n’ |
%c |
Short int |
-- |
%hi,%hx,%ho |
Unsigned short int |
-- |
%hu,%hx,%ho |
Int |
12,-97,0xFFE0,0177 |
%i,%x,%o |
Unsigned int |
12u,100U,0xFFu |
%u,%x,%o |
Long int |
12L,-200l,0xffffL |
%li,%lx,%lo |
Unsigned long int |
12UL,100ul,0xffeeUL |
%lu,%lx,%lo |
Long long int |
0xe5e5c5e5LL,500ll |
%lli,%llx,%llo |
Unsigned long long int |
12ull,0xffeeULL |
%llu,%llx,%llo |
Float |
12.34f,3.1e-5f, |
%f,%e,%g,%a |
Double |
12.34,3.1e-5,0x.1p3 |
%f,%e,%g,%a |
Long double |
12.34l,3.1e-5l |
%Lf,%Le,%Lg |
id |
nil |
%p |
NSLog的定義
NSLog定義在NSObjCRuntime.h中,如下所示:
void NSLog(NSString *format, …);
基本上,NSLog很像printf,同樣會在console中輸出顯示結果。不同的是,傳遞進去的格式化字符是NSString的對象,而不是chat *這種字符串指針。
示例
NSLog可以如下面的方法使用:
NSLog (@"this is a test");
NSLog (@"string is :%@", string);
NSLog (@"x=%d, y=%d", 10, 20);
但是下面的寫法是不行的:
int i = 12345;
NSLog( @"%@", i );
原因是, %@需要顯示對象,而int i明顯不是一個對象,要想正確顯示,要寫成:
int i = 12345;
NSLog( @"%d", i );
格式
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位雙字