我在我的应用程序中创建了一个用于声明全局变量的类。
.h文件
@interface GlobalVariables : NSObject
@property (nonatomic, strong) NSString *strTemp1;
@property (nonatomic, strong) NSArray *arrTemp1;
+ (GlobalVariables *)sharedInstance ;
.m文件
#import "GlobalVariables.h"
@implementation GlobalVariables
+ (GlobalVariables *)sharedInstance
{
static GlobalVariables *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [self new];
// Do any other initialisation stuff here
NSLog(@"alloc and intialize");
});
return sharedInstance;
}
现在在某个班级,我设定了这个变量的值。
[[GlobalVariables sharedInstance] setStrTemp1:@"Temp1"];
[[GlobalVariables sharedInstance] setArrTemp1:[NSArray arrayWithObjects:@"Name",@"Address",@"Contact NO", nil]];
并在其他课程中获得此值。
NSLog(@"Get string value : %@", [[GlobalVariables sharedInstance] strTemp1]);
NSLog(@"Get arr value : %@", [[GlobalVariables sharedInstance] arrTemp1]);
现在我的问题是这个varibles是release还是nil?
我在项目中使用ARC。
我知道arc会自动释放它但是何时以及如何?
答案 0 :(得分:2)
这是一个单例类,具有属性的类将一直存在,直到您完成应用程序或应用程序因其他原因终止。