2010-04-29 88 views
2

我在iphone.I是新使用標誌變量avAudio播放器來播放歌曲的所有歌曲妥善標誌variable.we handeled在標籤欄兩個選項卡,我想,如果任何一首歌曲,然後播放其他標籤歌曲信息show.If我們使用該標誌變量,然後我同步歌曲信息與歌曲。但我無法訪問歌曲信息tab.I標誌的值。我導入歌曲信息文件中的全局文件。全局變量問題

請幫我通過我定義一個全局整數VAR我可以在所有項目訪問任何一個。

回答

2

把變量在你的應用程序委託.m文件。聲明爲

extern MyType* MyVar = MyVal; 

然後在你的應用程序代理.h文件中

extern MyType* MyVar = MyVal; 

則包括.h文件中,無論你需要的變量。

你也可以使用一個單獨的文件放置在全局

你也可以放置在EXTERN的* _prefix.h文件 - 儘管我個人不喜歡這樣做。

+1

無包裝全局變量是邪惡的。雖然這將在技術上起作用,但會使應用程序變得脆弱。 – TechZen 2010-04-29 14:05:22

+0

我曾經認爲,現在我傾向於更務實。他們是一定規模的正確解決方案。並非每個應用都可以無限擴展。 – sylvanaar 2010-04-29 14:41:59

3

全局變量是邪惡的。隨着應用程序複雜性的增加,它們會導致難以追蹤的問題。

有來處理這幾種方法。

  1. 在您的應用程序委託中創建一個BOOl屬性,並通過引用該應用程序委託來引用該屬性。這是實現此類功能的最常見方式。
  2. 創建一個自定義單例對象來保存變量。通過調用單例來訪問變量。您通常只使用這個大型複雜數據。
  3. 通過調用+[NSUserDefaults standardUserDefaults]

在你的情況保存在用戶的默認值,我認爲(3)將是最好的,因爲你真的是在努力,而不是保存用戶數據的應用程序狀態。應用程序狀態信息屬於用戶默認值。當您想要將應用程序重新啓動回到先前的狀態時,這特別方便,例如打開上次退出時打開的視圖和數據。