NSBlockOperations вызывает утечку памяти и вызывает deinit никогда не вызывается [swift]

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?

0 ответов

Другие вопросы по тегам