当前位置: 代码迷 >> Iphone >> iphone 宣言和使用全局变量
  详细解决方案

iphone 宣言和使用全局变量

热度:30   发布时间:2016-04-25 06:39:43.0
iphone 声明和使用全局变量
1、在AppDelegate中声明并初始化全局变量
然后在需要使用该变量的地方插入如下的代码:

//取得AppDelegate,在iOS中,AppDelegat被设计成了单例模式AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];appDelegate.xxx = @"xxx";

//在AppDelegate.h里设置
@interface AppDelegate : UIResponder <UIApplicationDelegate>{    NSString *name;}@property NSString* name;@end


//在AppDelegate.m里设置@implementation AppDelegate@synthesize name;...@end

2、使用 extern 关键字
         2.1 新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;
         2.2 在Constants.h中写入你需要的全局变量名,例如:
                  NSString *url;//指针类型
                  int count;//非指针类型
                  注意:在定义全局变量的时候不能初始化,否则会报错!
         2.3  在需要用到全局变量的文件中引入此文件:
                   #import "Constants.h" 
         2.4 给全局变量初始化或者赋值:
         extern NSString *url; 
         url = [[NSString alloc] initWithFormat:@"http://www.google.com"];//指针类型;需要alloc
         extern int count;
         count = 0;//非指针类型
         2.5  使用全局变量:和使用普通变量一样使用。

3、单例的全局访问方法:
@interface MySingleton : NSObject
{
?①    NSString *testGlobal;
}

+ (MySingleton *)sharedSingleton;
?②@property (nonxxxx,retain) NSString *testGlobal;

@end

@implementation MySingleton
?③@synthesize testGlobal;

+ (MySingleton *)sharedSingleton
{
  static MySingleton *sharedSingleton;

  @synchronized(self)
  {
    if (!sharedSingleton)
      sharedSingleton = [[MySingleton alloc] init];

    return sharedSingleton;
  }
}

@end

把①、②、③的地方换成你想要的东西,
使用例:
[MySingleton sharedSingleton].testGlobal = @"test";
  相关解决方案