"自动释放池用于存放那些需要在稍后某个时刻释放的对象",中的某个时刻,是指?

2017-04-14 17:21:38 +08:00
 chipmuck

问题:

1 、查了一下,说是在下次 event 的时候进行 drain ,那具体的 ‘ event ’ 是指哪些?举一个具体例子。

2 、在 Cocoa 和 Cocoa Touch 的环境中会对加入池子的对象进行不同的释放处理吗?

3057 次点击
所在节点    iDev
6 条回复
snail1988
2017-04-14 17:42:14 +08:00
下个符号断点 [NSAutoreleasePool drain] 研究下就知道了
snail1988
2017-04-14 17:56:31 +08:00
还有 objc_autoreleasePoolPop
objc_autoreleasePoolPush
这俩对应 @autoreleasepool {}
DexterXie
2017-04-14 19:32:04 +08:00
一次 runloop 循环呗
chipmuck
2017-04-15 00:34:16 +08:00
@snail1988 多谢,回去试试。
zenghaojim33
2017-04-19 22:26:51 +08:00
当前 runloop 结束时
qinbingchen
2017-05-06 12:44:17 +08:00
指的是这次 runloop 循环结束时候....


cocoa 不用担心的池子的释放..就算你用了大循环.因为 mac 的性能内存够,也不会造成什么大损失.
cocoa touch 就需要你 自己判断了.大循环要不要自己加 autopool.. 加了就是结束就释放了,不加的话就是等 当前 runloop 结束,,应该是这个.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/354908

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX