我读到,当在Xcode中使用Objective-C编程中的ARC时,编译器会自动调用dealloc
方法。它在什么情况下被称为?Dealloc和ARC
为了避免变量名太多,当我需要重复使用相同的类来执行多个操作(并且每次重置变量)时,我经常声明变量,将它们设置为nil
,然后分配值给他们,我走了。这最终看起来像这样:
MyClass mc;
mc = [[MyClass alloc] init];
[mc doThis:someOption]
mc = [[MyClass alloc] init];
[mc doThis:someOtherOption];
//etc...
方法名alloc
是短期的“分配”因为它是内存分配给该变量的方法。每次我为它分配一个新值时,编译器是否会自动释放内存为sc
?我打算在我的一个项目中使用这种方法,并且我不希望分配很多内存,我一直呼叫alloc
为mc
分配一个新值。
感谢您的提示。我检查了仪器;有没有办法在仪器中运行我的项目而不导出?看来,仪器只记录应用程序(.app)的信息,但我的项目还没有准备好。 – Arc676
在Xcode中,从产品菜单中选择配置文件。 –
为什么没有在编译器中进行优化,它将取得最内层作用域中的对象的所有权,将对象从autorelease池中移除,并在作用域结束时释放它?一段时间以来,我认为有这样的优化,但唉,我错了。 –