Ho scritto un blocco di codice come il seguente:Come chiamare deinit a Swift
class Person{
let name:String;
init(name:String){
self.name = name;
println("\(name) is being initialized.");
}
deinit{
println("\(name) is being deInitialized.");
}
}
var person:Person?;
person = Person(name:"leo");
person = nil;
Quando inizializzata, print
è ok. Quando si imposta la persona su nil
, il metodo deinit
non viene chiamato.
Qual è il vero contesto di queste ultime 3 linee? Non possono stare stesi così nella vita reale ... – matt
Bene, questo è il problema allora. – matt
Se stai provando questo in un parco giochi, allora penso che sia il motivo per cui non funziona. Ho appena implementato l'esempio "banca" dal libro Swift e in un parco giochi non viene chiamato il metodo 'deinit', ma se inserisco il codice in un'applicazione e lo eseguo, lo è. – Paulw11