2015-10-14 95 views
0

github Bolts framework page (for ios)的BFTasks(基本承諾)的優點的列表包括有關的NSOperation依賴下面的語句:NSOperation依賴關係實際上是否導致內存泄漏?

「BFTasks釋放他們依賴的NSOperation極力保持其相關性,所以如果你有有序的操作隊列和使用依賴關係對它們進行排序,就會產生泄漏,因爲每個操作都會永久保留,BFTasks一運行就釋放它們的回調函數,所以一切都會自動清理,這可以減少內存使用並簡化內存管理。

這句話是否正確?

+0

ps。對我來說,[Apple推薦的基本設計模式](https://developer.apple.com/videos/wwdc/2015/?id=226)會產生這樣的內存泄漏 –

回答

0

NSOperationQueue一旦完成其依賴項和依賴關係,即釋放所有操作。因此,例如,如果我有一個名爲lastOperation的NSOperations,它具有200個其他操作的依賴關係,那麼一旦lastOperation完成,所有201個NSOperations將被釋放。

但是,如果沒有依賴於其他200個NSOperations的lastOperation,那麼200個NSOperations中的每一個將在它們完成後立即發佈。