在iphone sdk中声明全局变量的最佳方法是什么?

在iphone sdk中声明全局变量的最佳方法是什么?,iphone,Iphone,我是iphone新手,我只开发了两个小应用程序,在这些应用程序中,当我需要项目级全局变量时,我使用在应用程序中声明委托,但我在某个地方读到这不是最好的方法,有人能告诉我什么是声明项目级全局变量的最佳方法吗?要么你在头文件中使用extern这个词 外部NSString*yourVar 或者你可以在你的应用程序委托中声明它,就像你提到的那样。它可以是你在头文件中使用单词extern 外部NSString*yourVar 或者你可以像你提到的那样在你的应用程序委托中声明它。这实际上取决于你需要访问的变

我是iphone新手,我只开发了两个小应用程序,在这些应用程序中,当我需要项目级全局变量时,我使用在应用程序中声明委托,但我在某个地方读到这不是最好的方法,有人能告诉我什么是声明项目级全局变量的最佳方法吗?

要么你在头文件中使用extern这个词

外部NSString*yourVar


或者你可以在你的应用程序委托中声明它,就像你提到的那样。

它可以是你在头文件中使用单词extern

外部NSString*yourVar


或者你可以像你提到的那样在你的应用程序委托中声明它。

这实际上取决于你需要访问的变量的数量。如果有很多变量需要从应用程序中的任何位置访问,我建议创建一个单例。

下面是一个由Sachin Shanbhag制作的关于其工作原理的示例

@implementation MySingleton
static MySingleton* _sharedMySingleton = nil;

+(MySingleton*)sharedMySingleton
{
     @synchronized([MySingleton class])
     {
     if (!_sharedMySingleton)
        [[self alloc] init];

      return _sharedMySingleton;
     }

return nil;
}

这实际上取决于需要访问的变量的数量。如果有很多变量需要从应用程序中的任何位置访问,我建议创建一个单例。

下面是一个由Sachin Shanbhag制作的关于其工作原理的示例

@implementation MySingleton
static MySingleton* _sharedMySingleton = nil;

+(MySingleton*)sharedMySingleton
{
     @synchronized([MySingleton class])
     {
     if (!_sharedMySingleton)
        [[self alloc] init];

      return _sharedMySingleton;
     }

return nil;
}
几天前我也回答了类似的问题。根据我的观点,使用将是最好的方法。您还可以查看有关全局变量使用单例的信息。
您也可以为此目的使用。但我不建议使用appDelegate。请参阅以获得澄清。

几天前我刚刚回答了类似的问题。根据我的观点,使用将是最好的方法。您还可以查看有关全局变量使用单例的信息。

您也可以为此目的使用。但我不建议使用appDelegate。有关说明,请参阅。

有许多不同的方法可以做到这一点:

  • 在.h中声明变量,如“myView.h”文件,并通过导入此.h文件(通过
    #导入“myView.h”
    文件)来访问它

  • 在.h中将变量声明为extern,就像将“myView.h”文件声明为extern
    NSArray*myGlobalArray一样然后在AppDelegate文件中,分配并初始化变量:

    myGlobalArray=[[NSArray alloc]init]

  • 然后在需要该变量的地方导入“myView.h”

    我想这对你有点帮助


  • 有许多不同的方法可以做到这一点:

  • 在.h中声明变量,如“myView.h”文件,并通过导入此.h文件(通过
    #导入“myView.h”
    文件)来访问它

  • 在.h中将变量声明为extern,就像将“myView.h”文件声明为extern
    NSArray*myGlobalArray一样然后在AppDelegate文件中,分配并初始化变量:

    myGlobalArray=[[NSArray alloc]init]

  • 然后在需要该变量的地方导入“myView.h”

    我想这对你有点帮助