创建全局变量iPhone/iPad

创建全局变量iPhone/iPad,iphone,objective-c,ipad,Iphone,Objective C,Ipad,我有几个nib文件,我需要跟踪用户点击按钮的次数。在这个方法中,我显然会包含类似于counter++假设计数器是int变量。但我的问题是,我不知道在哪里定义该变量,以便我的所有nib文件都可以访问它 我试图在AppDelegate.h和.m文件中定义int变量计数器,但我无法在其他.m文件中访问该变量 或者我必须在main.m文件上创建它。我知道有两种选择: 使用AppDelegate。要让其他类访问AppDelegate,您需要导入它。要使这些类访问AppDelegate中的变量和方法,必须在

我有几个nib文件,我需要跟踪用户点击按钮的次数。在这个方法中,我显然会包含类似于
counter++假设计数器是int变量。但我的问题是,我不知道在哪里定义该变量,以便我的所有nib文件都可以访问它

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

或者我必须在main.m文件上创建它。

我知道有两种选择:

  • 使用AppDelegate。要让其他类访问AppDelegate,您需要导入它。要使这些类访问AppDelegate中的变量和方法,必须在其头文件(.h)中声明它们
  • 使用单件。类访问“共享”类,并可以访问该共享类的变量和方法。有关更多信息,请参阅
  • 我知道有两种选择:

  • 使用AppDelegate。要让其他类访问AppDelegate,您需要导入它。要使这些类访问AppDelegate中的变量和方法,必须在其头文件(.h)中声明它们
  • 使用单件。类访问“共享”类,并可以访问该共享类的变量和方法。有关更多信息,请参阅

  • 一般来说,考虑全局状态

    要访问您的应用程序代理,很容易:

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

    一般来说,考虑全局状态

    要访问您的应用程序代理,很容易:

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

    它们在某些情况下可能不好,但有时它们的使用是不可避免的。这也取决于你使用的语言。我不会说“不可避免”,更可能是“简单的出路”。一旦你掉进那个洞里,你就很难/痛苦地走出它。我不是这个地区的圣人,我采取简单的方式分配。。。但是,这些习惯迟早会“咬我们的屁股”。在某些情况下它们可能是不好的,但有时它们的使用是不可避免的。这也取决于你使用的语言。我不会说“不可避免”,更可能是“简单的出路”。一旦你掉进那个洞里,你就很难/痛苦地走出它。我不是这个地区的圣人,我采取简单的方式分配。。。但是,这些习惯迟早会“咬我们的屁股”。