Ответ 1
Проблема в том, что игровая площадка - это не настоящая жизнь. Это еще одна причина не использовать их (я думаю, что они являются ужасной ошибкой на Apple часть). Используйте настоящий проект приложения iOS, а deinit
вызывается как ожидалось.
Пример из реального проекта:
class ViewController: UIViewController {
class Person{
let name:String;
init(name:String){
self.name = name;
println("\(name) is being initialized.");
}
deinit{
println("\(name) is being deInitialized.");
}
}
override func viewDidLoad() {
super.viewDidLoad()
var person:Person?;
person = Person(name:"leo");
person = nil;
}
}
Это делает то, что вы ожидаете от этого.