宣布 iPhone 项目中的全局变量

有几个不同的方式,您可以执行此操作:

  1. ,而不是将它声明为全局变量,将其包装在一个单独的对象,然后,单身人士有可用的任何位置 (通过导入.h 文件 #)

  2. 创建像"Globals.h"的.h 文件。 在该的.h 声明您数组作为 static extern NSMutableArray * myGlobalArray;,然后在别处在您的应用程序 (在 AppDelegate 是个好地方),就是要做:myGlobalArray = [[NSMutableArray alloc] init];,那么您只需要在的阵列的任何地方 #import "Globals.h"

  3. 这是如 # 2,但没有全球的标头。 在您的项目.pch 文件的 #ifdef __OBJC__块内,您可以定义为 static extern NSMutableArray *myGlobalArray;的数组。 .pch 文件是自动是 # 导入到您的项目中的每个文件的头文件。

有每种方法的利与弊。 我用所有这三种在不同时间在不同的情况。 我会说单身人士的做法是可能最恰当,因为它将是最灵活的初始化、 访问限制和内存管理。 但是,它可以是不必要如果您不需要的。

好的如果你有很多你不想公开到每个文件在您的项目之间的"全局"变量选项 # 2。您可以只是 # import 它在其所需。但是,这种方法 (以及 # 3) 不从初始化声明 (ie,不创建对象的声明的位置附近)。有人可能会说这不是正确的它们可能正确。

选项 # 3 是好因为那么你永远不会有请记住 # import 任何在所有。但是,它会引发作为选项 # 2 同样的问题。

posted on 2010-10-26 23:01  NullReferenceException  阅读(797)  评论(0)    收藏  举报