【问题标题】:What will be best approach to declare global variables in iphone sdk?在 iphone sdk 中声明全局变量的最佳方法是什么?
【发布时间】:2011-12-01 05:03:42
【问题描述】:

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

【问题讨论】:

    标签: iphone


    【解决方案1】:

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

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

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

      myGlobalArray = [[NSArray alloc] init];

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

      我认为这会对你有所帮助。

    【讨论】:

      【解决方案2】:

      几天前我刚刚回答了类似的question。在我看来,使用singleton 将是最好的方法。您还可以查看 my answer 关于将单例用于全局变量的信息。
      您也可以为此目的使用appDelegate。但我不会推荐使用 appDelegate。详情请参阅this

      【讨论】:

        【解决方案3】:

        这实际上取决于您需要访问的变量的数量。如果您需要从应用程序中的任何位置访问大量变量,我建议您制作一个单例。 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;
        }
        

        【讨论】:

          【解决方案4】:

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

          extern NSString* yourVar;

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

          【讨论】:

            猜你喜欢
            • 2016-09-18
            • 1970-01-01
            • 1970-01-01
            • 2016-05-19
            • 2010-10-12
            • 2013-06-05
            • 1970-01-01
            • 2022-01-01
            • 2010-11-17
            相关资源
            最近更新 更多