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

时间:2011-10-05 05:43:01

标签: iphone

我是iphone的新手,我只是开发了两个小应用程序,并且在这些应用程序中,当我需要项目级全局变量时,我曾经在app delegate中声明,但我在某处读到这不是最好的方法,所以有人可以告诉我什么是声明项目级全局变量的最佳方法?

4 个答案:

答案 0 :(得分:2)

那么它真的取决于您需要访问的变量数量。如果您需要从应用程序中的任何位置访问许多变量,我建议制作一个单例。 How to make a singleton

以下是Sachin Shanbhag如何运作的例子

@implementation MySingleton
static MySingleton* _sharedMySingleton = nil;

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

      return _sharedMySingleton;
     }

return nil;
}

答案 1 :(得分:2)

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

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

  2. 在.h中将变量声明为extern,如extern NSArray *myGlobalArray;中的“myView.h”文件然后在AppDelegate文件中,分配&初始化变量:

    myGlobalArray = [[NSArray alloc] init];

  3. 然后只需#import "myView.h"您需要此变量的地方。

    我瘦这会对你有所帮助。

答案 2 :(得分:1)

我几天前回答了类似的question。根据我的说法,使用singleton将是最好的方法。您还可以看到有关全局变量使用单例的my answer 您也可以使用appDelegate来实现此目的。但我不建议使用appDelegate。有关说明,请参阅this

答案 3 :(得分:0)

它要么在头文件中使用extern一词

  

extern NSString * yourVar;

或者你可以像你提到的那样在你的app委托中声明它。