運行調試/分發構建檢測是否有可能在運行時檢測是否正在運行的應用程序與調試或分發編譯。如果iPhone在運行時
5
A
回答
13
在項目信息,用於調試配置,添加「調試」的預處理宏(在GCC 4.2 - 預處理部分)。
在你的代碼可以使用#ifdef來看看是否DEBUG是,如果你想包括或不包括一些代碼的調試版本定義。或者你甚至可以設置一個變量(我不能想象你爲什麼會想這樣):
#ifdef DEBUG
BOOL isBuiltDebug = YES;
#else
BOOL isBuiltDebug = NO;
#endif
編輯:那麼,另一種方法是在預處理宏,即定義一個布爾值:「DEBUG_BUILD = 1「表示調試配置,」DEBUG_BUILD = 0「表示發佈配置。然後你就可以在你的代碼中使用該值:
if (DEBUG_BUILD) {
....
}
只是要小心,不要使用宏的名字,可能的名稱匹配的是已經在你的代碼或以任何.h文件中,你可能包括兩種,因爲預處理器將取代它,並且發現這些類型的錯誤真的很痛苦。
5
而不必考慮如何定義自定義預處理宏,你可以寫這樣一個自定義的方法:
+ (BOOL) isInDebugMode
{
#ifndef __OPTIMIZE__ // Debug Mode
return YES;
#else
return NO;
#endif
}
或者只是那些語句中編寫代碼內聯:
#ifndef __OPTIMIZE__ // Debug Mode
// Your debug mode code
#else
// Your release mode code
#endif
__OPTIMIZE__
預處理器設置由編譯器自動設置,關於您的項目設置,因此您不必擔心它。
相關問題
- 1. 我可以在iPhone上運行JavaScript運行時(如v8)嗎?
- 2. 如果.designer.cs在運行時生成?
- 3. 如何定義programmaticaly如果應用程序運行在iphone 5
- 4. 運行時的iPhone視圖?
- 5. 如果程序在特定時間運行,運行命令?
- 6. 在運行時調用iPhone計算器。
- 7. iPhone:下載的zip並在運行時
- 8. 在運行時確定iPhone設備
- 9. 運行時錯誤,如果AllowBypassKey設置爲false Access運行時
- 10. 如果Chrome擴展在Opera上運行,它如何在運行時檢查?
- 11. 如何在iPhone運行時在bundle中創建sqlite數據庫?
- 12. 如何在iPhone或iPad休眠時在Swift中運行函數?
- 13. 我如何在運行時更換鍵盤在iphone中
- 14. 如果iPhone不處於全屏模式,如何運行javascript?
- 15. PHP Laravel如果(!空())運行時,空
- 16. 如何在iPhone的後臺運行sqlite?
- 17. 如何在iphone移動項目運行
- 18. 如何在iphone中運行python?
- 19. 在iPhone上運行djvulibre?
- 20. 完成在iPhone上運行
- 21. 在iphone上運行fb:swf嗎?
- 22. 在iPad上運行iPhone SDK
- 23. 在Ipad上運行Iphone App
- 24. 如果AsyncTaskLoader運行
- 25. 粒子效果在運行時
- 26. 在運行時過濾NSFetchedResultsController結果
- 27. 如何在運行pdfjs時運行javascript?
- 28. 如何在運行運行時
- 29. 如何長時間在後臺運行iphone應用程序?
- 30. 如何知道運行時在iphone中的視圖名稱
你爲什麼要這麼做? – progrmr 2010-04-03 00:04:51