我想在注销后释放全局变量的所有内存。因为,在我退出后,内存不会下降。我正在使用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];
答案 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;
}