如果我在AppDelegate中的appDidFinishedLauching里面声明了一个array,app第一次被运行时候被分配,是否只要在这个app不彻底从系统中退出(双击home键将这个app卡片划出去),那这个array就一直在,且保存着其中的数据呢?
1
dorentus Apr 3, 2014
假如这个 array 被赋为了某个持久对象(比如 AppDelegate 的实例)的 strong 属性,那么是。
否则的话,出了作用域这个 array 就没了…… |
2
dorentus Apr 3, 2014
@dorentus 补充一下,上面这个是开启 ARC 的情况。array 没了是因为编译器自动在出作用域之前给它发了 release 消息。
没开启 ARC 的话(现在已经很少有人这么做了吧),除非手动发 release 消息直至 retain count 为 0,否则 alloc 过的对象一直存在。 |
3
Him Apr 4, 2014
app在启动的时候会创建一个autoreleasepool(见main),如果array并不是alloc、new出来的,可以自动释放
|