我是iphone的新手,我只是开发了两个小应用程序,并且在这些应用程序中,当我需要项目级全局变量时,我曾经在app delegate中声明,但我在某处读到这不是最好的方法,所以有人可以告诉我什么是声明项目级全局变量的最佳方法?
答案 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)
有很多不同的方法可以做到这一点:
在.h中声明变量,如“myView.h”文件,并通过导入此.h文件(#import "myView.h"
文件)来访问它
在.h中将变量声明为extern,如extern NSArray *myGlobalArray;
中的“myView.h”文件然后在AppDelegate文件中,分配&初始化变量:
myGlobalArray = [[NSArray alloc] init];
然后只需#import "myView.h"
您需要此变量的地方。
我瘦这会对你有所帮助。
答案 2 :(得分:1)
我几天前回答了类似的question。根据我的说法,使用singleton将是最好的方法。您还可以看到有关全局变量使用单例的my answer 您也可以使用appDelegate来实现此目的。但我不建议使用appDelegate。有关说明,请参阅this。
答案 3 :(得分:0)
它要么在头文件中使用extern一词
extern NSString * yourVar;
或者你可以像你提到的那样在你的app委托中声明它。