2010-08-27 23 views
2

我是iPhone新手Objective C。我嘗試下面的代碼來獲取屏幕尺寸,但下面的代碼返回兩個不同的結果:iPhone SDK屏幕大小使用類似的語法返回不同的結果

CGRect screenRect = [UIScreen mainScreen].bounds; 
NSLog(@"width: %d", screenRect.size.width); 
NSUInteger width = [UIScreen mainScreen].bounds.size.width; 
NSUInteger height = [UIScreen mainScreen].bounds.size.height; 
NSLog(@"width: %d", width); 

第一的NSLog輸出0,而最後一個輸出320爲什麼它們有什麼不同?它與指針有什麼關係?請幫忙。

回答

2

%d是十進制數,您正嘗試打印一個浮點數。嘗試

CGRect screenRect = [UIScreen mainScreen].bounds; 
NSLog(@"width: %f", screenRect.size.width); 
float width = [UIScreen mainScreen].bounds.size.width; 
NSLog(@"width: %f", width); 
+0

男人,我知道這很簡單。非常感謝! – guowy 2010-08-27 05:04:01

+0

我意識到我是WAAAY遲到派對,但不是'%d'整數? – mbm29414 2014-09-23 20:58:08

0

bounds屬性是CGRect類型的結構。我認爲,由於NSLog不知道如何打印,所以它打印一個0. size成員是一個CGSize類型的結構。您可以打印CGSize的成員,因爲它們只是CGFLoats或浮動。

編輯:哦,我明白了現在的問題。認爲你是在印刷結構本身。誤讀了。

+0

什麼是反對票? – 2010-08-27 05:03:52

相關問題