Ios NSBlockOperations导致内存泄漏,并导致Denit从未被调用[swift]
这是我将邮件插入我的收藏视图的代码 我需要块操作,这样当一条消息被延迟时,它可以被插入到块中 问题是每次我关闭Ios NSBlockOperations导致内存泄漏,并导致Denit从未被调用[swift],ios,swift,nsfetchedresultscontroller,nsoperation,nsblockoperation,Ios,Swift,Nsfetchedresultscontroller,Nsoperation,Nsblockoperation,这是我将邮件插入我的收藏视图的代码 我需要块操作,这样当一条消息被延迟时,它可以被插入到块中 问题是每次我关闭viewController打印(“已完成”)副本时。这意味着我有内存泄漏 除非我删除块操作,否则不会调用deinit,当我离开viewController时,如何释放块操作?请参阅,它可能会有所帮助!请参阅,这可能会有所帮助!看见 var blockOperations = [NSBlockOperation]() func controller(controller: NSFetch
viewController
打印(“已完成”)副本时。这意味着我有内存泄漏
除非我删除块操作,否则不会调用deinit
,当我离开viewController
时,如何释放块操作?请参阅,它可能会有所帮助!请参阅,这可能会有所帮助!看见
var blockOperations = [NSBlockOperation]()
func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) {
if type == .Insert {
blockOperations.append(NSBlockOperation(block: {
self.collectionView?.insertItemsAtIndexPaths([newIndexPath!])
}))
}
}
func controllerDidChangeContent(controller: NSFetchedResultsController) {
collectionView?.performBatchUpdates({
for operation in self.blockOperations {
operation.start()
}
}, completion: { (completed) in
print("completed")
})
}