在github Bolts framework page (for ios)上,BFTasks(基本上是promises)的优点列表包括以下关于NSOperation依赖关系的声明:
" BFTasks发布他们的依赖项。 NSOperation强烈地保留了它的依赖关系,所以如果你有一个有序操作的队列并使用依赖关系对它们进行排序,那么你就会有泄漏,因为每个操作都会永久保留。 BFTasks在运行后立即释放它们的回调,因此一切都会自行清理。这可以减少内存使用,并简化内存管理。"
这句话是否正确?
答案 0 :(得分:0)
NSOperationQueue会在其依赖项和依赖项完成后释放所有操作。
因此,例如,如果我有一个名为lastOperation的NSOperations,它具有200个其他操作的依赖关系,那么一旦lastOperation完成,所有201个NSOperations将被释放。
但是,如果没有依赖于其他200个NSOperations的lastOperation,那么200个NSOperations中的每一个都将在完成后立即发布。