2013-01-07 34 views
2

宏恆我知道如何定義使用C.常量和宏有沒有什麼辦法來定義一個常量在Objective-C是這樣的:類似的東西的狀態欄高度

#define STATUSBAR_HEIGHT [UIApplication sharedApplication].statusBarFrame.size.height 
+1

當你嘗試它時發生了什麼? –

+3

記住,Objective-C *是* C ...任何有效的C也是有效的Objective-C – borrrden

回答

5

是那差不多了。比如你想打開一個網址,然後 -

#define OPEN_URL(urlString) [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]] 

utils.h文件將這個和導入頭文件該宏可用。但是,在大型代碼庫中,每個文件都導入令人生氣,您可以在AppName-Prefix.pch的#ifdef __OBJC__部分聲明一個全局宏。現在你不需要在每個文件中導入...

+2

需要注意的是_value_不是常數。宏只是對源代碼的重寫。在運行時,所有這些方法調用仍然會發生,並且每次使用宏時宏的值可能會有所不同。 –

+0

+1,並且很好地包含全局宏信息。我在一個[不同的問題]中看到它(http://stackoverflow.com/questions/8202526/how-to-define-a-macro-globally-in-objective-c?rq=1),但有兩個方法全球範圍內的單一答案可能有助於未來的讀者,特別是在這個問題上的標題。 – WhozCraig