2011-01-28 63 views
0

有沒有辦法告訴XCode在編譯時將某些變量或常量插入到您的項目中,供您在代碼中使用?具體來說,我正在談論iOS項目,所以我沒有選擇使用命令行參數。用於Objective-C代碼的自定義編譯時間變量?

爲什麼我需要這個,你問?那麼對於表格視圖中的某些單元格,我想添加一個不同的字幕文本,因爲它可以幫助我在開發過程中選擇合適的單元格。像這樣的東西會很棒:

if (MY_COMPILE_TIME_BOOL_CONST) { 
    cell.subtitle.text = [NSString stringWithFormat:@"Contains %i items", count]; 
} else { 
    cell.subtitle.text = @""; 
} 

但是還有很多其他的地方會派上用場。不知何故,當試圖谷歌答案時,我只能「從XCode教程開始」。

任何人都可以指向魔術?

更新:谷歌的魔術詞是「預處理宏」。謝謝,所以!

回答

3

您還可以添加一些LIK e DEBUG=1添加到調試配置的預處理器宏。然後,您可以將預處理器ifs添加到您的代碼中,並且相應的代碼將僅以調試模式進行編譯。

#if DEBUG 
NSLog(@"Foo"); 
#endif 

後者是我每天都在使用的東西。

+0

請參閱我編譯時間常量我實際上在尋找的是「預處理器宏」。這完全按照我想要的方式工作。謝謝! – epologee 2011-01-28 10:22:55

0

什麼:

#define DEBUG YES 

.pch

,那麼你可以做這樣的事情

if (DEBUG) { 
    cell.subtitle.text = @"Counting xyz"; 
    return cell; 
} 

cell.subtitle.text = @""; 
return cell; 

如果youre主要發展在模擬器,你也可以檢查模擬器。

+0

啊,是的,這也是我的第一個想法,但我在一個團隊中工作,並希望將常量鏈接到活動配置(調試/發佈/分發) – epologee 2011-01-28 10:09:23

2

如果您不想爲這些宏添加一個或多個頭文件,請嘗試以下步驟。

在Xcode中,雙擊目標,選擇配置(調試/發佈/等),你想在你的特殊定義,然後在搜索欄中鍵入預處理「。然後,你應該看到預處理宏其中如果從XCode中你完全可以使用命令行參數啓動您的應用程序,你可以輸入你的額外