0

github Bolts 框架页面(适用于 ios)上,BFTasks(本质上是承诺)的优点列表包括以下关于 NSOperation 依赖项的声明:

“BFTasks 释放它们的依赖关系。NSOperation 强烈保留它的依赖关系,所以如果你有一个有序操作队列并使用依赖关系对它们进行排序,你就会有泄漏,因为每个操作都会被永久保留。BFTasks 在运行后立即释放它们的回调,所以一切都会自行清理。这可以减少内存使用,并简化内存管理。

这个说法正确吗?

4

1 回答 1

0

NSOperationQueue 在其依赖项和依赖项完成后释放所有操作。

因此,例如,如果我有一个名为 lastOperation 的 NSOperations,它依赖于 200 个其他操作,那么一旦 lastOperation 完成,所有 201 个 NSOperations 将被释放。

然而,如果没有 lastOperation 依赖于其他 200 个 NSOperations,那么 200 个 NSOperations 中的每一个都将在它们完成后立即释放。

于 2016-06-29T06:38:38.540 回答