Rápido - Preguiçoso carregando uma propriedade que pode ser feita mais tarde

Estou procurando uma maneira de carregar preguiçosamente minha variável, mas quero poder torná-la nula mais tarde e depois recriá-la. Por exemplo, no caso de um aviso de memória, desejo limpar qualquer coisa que não seja usada e, em seguida, recriá-lo quando necessário novamente mais tarde.

Aqui está como eu faria isso em Objective-C e minha interpretação atual em rápida. Não sei se ele preserva a variável para manter a navegação atual.

Implementação de Obj-C

@property (strong, nonatomic, readwrite) UINavigationController *navController;

...

- (UINavigationController *)navController {
    if (!_navController) {
        UIStoryboard *tempStoryboard = [UIStoryboard storyboardWithName:@"SomeStoryboard" bundle:nil]; 
        _navController = [tempStoryboard instantiateInitialViewController];
    }

    return _navController;
}

...

- (void)didReceiveMemoryWarning
{
    if (![self.centerView isEqual:_navController]) {
         _navController = nil;
    }
}

Implementação rápida

var navController :UINavigationController? {
    get {
        // There is no assignment to the a variable and I can't check if the current value is nil or it recalls the get method and hence re-create it if it is nil.
        let tempStoryboard = UIStoryboard(name: "Image", bundle: nil);
        let tempNavController: AnyObject = tempStoryboard.instantiateInitialViewController();

        return tempNavController as? UINavigationController;
    }
}

...

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

    if (!self.centerPanel.isEqual(navController)) {
        self.navController = nil;
    }
}

questionAnswers(1)

yourAnswerToTheQuestion