2011-07-20 64 views
0

我有几个笔尖文件,我需要跟踪用户点击按钮的次数。在这个方法中,我明显会包含一些像counter++;,假设counter是一个int变量。但我的问题是,我不知道在哪里定义该变量,以便我所有的nib文件都可以访问它。创建全局变量iPhone/iPad

我试过的是在AppDelegate.h和.m文件中定义int变量计数器,但我无法访问其他.m文件中的变量。

或者我可能需要在main.m文件中创建它。

回答

3

我知道有两种选择:

  1. 使用AppDelegate中。对于其他类访问AppDelegate,你需要#import它。对于这些类访问AppDelegate中的变量和方法,它们必须在其头文件(.h)中声明。
  2. 使用单身。类访问“共享”类并访问该共享类的变量和方法。有关更多信息,请参阅http://getsetgames.com/2009/08/30/the-objective-c-singleton/
+0

+1单的想法。 – Perception

2

通常,全局状态被认为是bad

要访问您的应用程序代理很简单:

MyAppDelegate* delegate = [[UIApplication sharedApplication] delegate]; 
+1

在某些情况下它们可能不好,但有时它们的使用是不可避免的。这也取决于你使用的语言。 –

+0

我不会说'不可避免的',更可能是'简单的出路'。一旦陷入这个洞,离开它就非常困难/痛苦。我在这方面不是圣人,我会轻松地分配......但是,这些类型的习惯迟早会把我们扼杀在屁股里。 –