什么时候会在ARC中释放或者没有变量?

时间:2014-04-11 13:13:43

标签: objective-c memory-management ios7 automatic-ref-counting

我在我的应用程序中创建了一个用于声明全局变量的类。

.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会自动释放它但是何时以及如何?

1 个答案:

答案 0 :(得分:2)

这是一个单例类,具有属性的类将一直存在,直到您完成应用程序或应用程序因其他原因终止。