iOS: Как проверить, выгружаются ли UIViewControllers? (Swift)

Я используюUISplitViewController каждый раз, когда я нажимаю на строку в Master VC, я вижу, чтоviewDidLoad() запускается в Detail VC.

Означает ли это, что я создаю новый экземпляр Detail VC каждый щелчок строки?

Если так, как я могу проверить, что VC Detail выгружается правильно, и что я не просто создаю все новые и новые VC Detail?

Я немного потерян здесь, в Свифте. Ранее я мог NSLog в dealloc () и увидетьUIViewController правильно разгрузить.

В Swift есть функция deinit, но она никогда не вызывается:

deinit {
    println("\(__FILE__.lastPathComponent)) : \(__FUNCTION__)")
    NSNotificationCenter.defaultCenter().removeObserver(self)
}

1) Где мне снимать наблюдателей?

2) Когда я смотрю в Навигаторе отладки в Xcode, использование памяти просто продолжает расти и никогда не падает.

Обновлено: Деталь VC вызывается следующим образом:
if segue.identifier == "addEvent" {
    if let controller = (segue.destinationViewController as UINavigationController).topViewController as? ManageViewController {
        controller.manageEvent = nil
        controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
        controller.navigationItem.leftItemsSupplementBackButton = true
    }
}

Я не делаю ничего, кроме множества примеров, которые я видел, но я беспокоюсь оdeinit не вызывать

Обновлено: работает сейчас - проблема с остановкой делегатаdeinit вызывается (см. ответ ниже)

Мой оригинальный нерабочий код был:

protocol ManageViewDelegate {
    func pressedButton(sender: AnyObject)
}

class ManageView: UIView {
    var delegate: ManageViewDelegate? = nil
    ...
}

Новый рабочий код:

protocol ManageViewDelegate: class {
    func pressedButton(sender: AnyObject)
}

class ManageView: UIView {
    weak var delegate: ManageViewDelegate? = nil
    ...
}

Ответы на вопрос(2)

Ваш ответ на вопрос