1
1
可以安全地假定自动释放的对象不会在分配它的帧下面的堆栈帧中被释放。所以,在调用堆栈中
假设method2中的alloc/autoreleated实例在method3中是有效的,这是安全的,除非您玩了一些不好的技巧,并从method3中排出method1中创建的池。这是因为较高帧中的自动释放池无法在较低帧中排出(除非是由于愚蠢)。当然,一旦控制返回到方法1,所有下注都将关闭。 较低框架中分配的自动释放池将不包含方法2中自动释放的实例,因为它们可能不是活动池(尚未创建!)在自动租赁时。 最后, 除非 调用链中较低的方法, 之间 感兴趣的方法和实例化对象实例并自动释放对象实例的方法创建并释放自动释放池,可以确保在运行循环结束之前不会释放封闭池。 |
2
4
答案是,在所有方法调用之后,nsAutoReleasePool都会被清空,而您又回到了运行循环中。这意味着在调用堆栈中,只要不返回运行循环,就不会释放对象。 |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |
joe · 一页可以同时在两个工作集中吗? 6 年前 |
Jaques · “.exe”已触发断点 6 年前 |
adn bps · 在函数中修改变量的高效内存方法 6 年前 |
Gauraang Khurana · C语言中分段错误的不稳定行为 6 年前 |
Rajesh K · 如何查找设备中存在的广告垃圾? 6 年前 |