核心数据performBlockAndWait没有自动释放轮询

时间:2013-04-26 09:41:52

标签: ios core-data

在WWDC 2012核心数据最佳实践视频中,该人声称performBlockAndWait:不包含自动释放池。 (而performBlock:确实如此)

为什么不呢?究竟是什么后果呢?我是否需要将块内容包装在自动释放池中 - 所有Apple示例都不会这样做。或者他的观点是对比performBlock:这不需要一个。

2 个答案:

答案 0 :(得分:2)

bandejapaisa,

A -performBlockAndWait:从周围的自动释放池中获益。 (-performBlockAndWait:似乎直接在当前线程上执行。)因此,它不需要自己的自动释放池。

安德鲁

答案 1 :(得分:0)

performBlockAndWait:是可重入的。它不提供自动释放池或处理用户事件(它不调用processPendingChanges),并在由上下文队列管理的线程上执行。

因为它是可重入的,所以它会阻塞调用线程直到完成。此行为与自动释放池和Core Data用户事件都不兼容,这就是它不使用它们的原因(performBlock:})。