如何释放全局变量的内存?

时间:2014-08-07 09:56:41

标签: ios objective-c xcode

我想在注销后释放全局变量的所有内存。因为,在我退出后,内存不会下降。我正在使用ARC。

我已经尝试过这段代码,但它不起作用。

global.arrayStatus = nil;
global.arrayEmpName = nil;
global.arrayEmpNo = nil;
global.arrayDateTime = nil;
global.arraUpdatedBy = nil;
global.arrayDatePosted = nil;
global.arrayPostStatus = nil;

[self dismissViewControllerAnimated:YES completion:nil];

2 个答案:

答案 0 :(得分:2)

您要清理的物体有多大?它们可能很小,你没有注意到任何可见的记忆变化。

在“仪器”工具上查看Apple's guide,特别是泄漏部分

请注意,您可能还有retain cycle,这样可以避免内存被清除,也不会显示在乐器中

另外,如果要清除全局对象的所有属性,那么用新实例替换它可能会更容易,而不是清除它的每个属性。

//  Beats writing more than one line
global = [[GlobalObject alloc] init];

[self dismissViewControllerAnimated:YES completion:nil];

答案 1 :(得分:0)

请记住不要在arc中使用super dealloc

    -(void)dealloc{
    global.arrayStatus = nil;
    global.arrayEmpName = nil;
    global.arrayEmpNo = nil;
    global.arrayDateTime = nil;
    global.arraUpdatedBy = nil;
    global.arrayDatePosted = nil;
    global.arrayPostStatus = nil;
    }