2015-08-23 219 views
3

嗨,大家好,我覺得自己像一個白癡問這個問題,但我無法幫助我的自我,因爲我真的認爲我正在做的事情corectlly。XCode預處理器宏#if不工作

所以我預處理器宏,我叫我的構建設置LINPHONE_DEBUG Xcode項目我已經宏設置爲0正是這樣:LINPHONE_DEBUG=0

但不知何故,當我使用此代碼:

#if LINPHONE_DEBUG 
    foo() 
#endif 

foo()仍然被稱爲下面的截圖。

enter image description here

你可以看到我打印po LINPHONE_DEBUG,這是0但它仍然達到了代碼...

我正在XCODE 6.4 (6E35b)

感謝提前的幫助。

回答

5

從夫特的iBook:使用夫特與可可和Objective-C(SWIFT 2 Prerease)

「的編譯器夫特不包括預處理器。相反,它利用編譯時屬性,構建配置和語言功能來實現相同的功能。因此,在Swift中不會導入預處理器指令。「

」構建配置 Swift代碼和Objective-C代碼是以不同方式進行有條件編譯的。 Swift代碼可以根據構建配置的評估條件進行編譯。構建配置包括下表中列出的文字真假值,命令行標誌和平臺測試功能。您可以使用-D <#flag#>指定命令行標誌。「

有關構建配置的更多信息,請參閱文檔。

+0

謝謝你,先生......對不起 –

-1

更新:此解決方案在目標c中工作。

你應該嘗試這樣的:

#if LINPHONE_DEBUG > 0 
    foo() 
#endif 
+0

我沒」 t注意到這個問題是關於快速的。它的目標是c。 – hsafarya

+0

那麼我發佈的作品也在Objective-C中工作......所以這個答案是完全廢話 –