1
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")
    })

}

这是我将消息插入我的集合视图的代码。

我需要块操作,以便在消息延迟时可以将其插入块中。

问题是每次我解雇重复项viewController时。print("completed")这意味着我有内存泄漏。

除非我deinit删除块操作,否则永远不会被调用,当我离开时如何释放块操作viewController

4

0 回答 0