2010-04-29 149 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)将是最好的,因为你真的是在努力,而不是保存用户数据的应用程序状态。应用程序状态信息属于用户默认值。当您想要将应用程序重新启动回到先前的状态时,这特别方便,例如打开上次退出时打开的视图和数据。