回答
目標C是普通的ANSI C的超集,所以你會創建和使用全局變量作爲老式C.
在只有一個.M或.c文件,把完全相同的方式:
BOOL gMyGlobalBoolVar = NO; // or YES, depending on whatever initial state is needed
我可能會將這些放置在一個集中的單例類(如appdelegate .m文件)中,或放在單獨的.c文件(如myGlobals.c)中。我通常將這些放在#imports/includes之後,但在任何類,方法或函數定義之前,以澄清它們可以在任何對象或函數之外訪問。
在爲要訪問gMyGlobalBoolVar所有類的.h文件,提出:
extern BOOL gMyGlobalBoolVar;
然後,只需使用類中的任何地方他們:
if ([ self dogHasFleas ]) {
gMyGlobalBoolVar = YES;
}
使用全局變量是目前不是「政治上正確」的,但對於你永遠不會嘗試發佈,重用,擴展或尋找粗糙的bug的快速代碼,它們的工作方式就像在幾乎所有計算機和編程語言中的工作一樣。
我很困惑,爲什麼他們如此反對。我計劃發佈這個應用程序,所以最好讓它整潔,整潔,快速和簡潔。 那麼,如果我確實需要全局訪問這個變量,那麼最佳選擇是什麼? – 2010-08-30 17:23:49
你可以引用包含bool的視圖並使用getter獲取變量。
如果你想要應用程序的廣泛變量,你可以把它們放在AppDelegate中,但我強烈建議不要這樣做,因爲它緊密結合了類。
創建一個數據模型類。在您的應用程序委託中實例化它,並將它傳遞給您的視圖控制器。使用鍵值觀察來跟蹤視圖控制器中對模型的更改。看到我的答案在這裏:How do I display and calculate numbers from a database on iPhone?
「爲什麼我不應該使用全局變量?它不能傷害這一次。」這是一個不好的習慣。避免使用全局變量會使您的代碼更易於閱讀和重用,更易於擴展並且更易於調試。
- 1. iPhone:目標C全局變量
- 2. 全局變量訪問問題iphone
- 3. iPhone - 故事板中的全局變量
- 4. iPhone - 背景參數與全局變量
- 5. 全局變量值問題iPhone
- 6. 創建全局變量iPhone/iPad
- 7. java全局全局變量和用戶全局變量
- 8. 全局變量
- 9. 全局變量。
- 10. 全局變量
- 11. 全局變量
- 12. 全局變量
- 13. 全局變量
- 14. 全局變量
- 15. 全局變量
- 16. 全局變量
- 17. 全局變量
- 18. 全局變量
- 19. 全局變量
- 20. 全局變量
- 21. 全局變量
- 22. 全局變量
- 23. 全局變量
- 24. 全局變量?
- 25. 全局變量
- 26. 變量全局變量?
- 27. JS全局變量到局部變量
- 28. PowerShell全局變量局部變量
- 29. 局部變量與全局變量
- 30. 局部變量的全局變量
需要更多信息,他們在導航控制器中的意見?或者他們只是上課? – 2010-08-30 14:52:29
我的道歉,在導航控制器中的意見。 – 2010-08-30 14:57:32
在下面的鏈接閱讀答案,它清楚地解釋http://stackoverflow.com/a/20423815/730807 – 2014-06-28 09:05:49