如何在Swift中调用deinit
我写了一个代码块如下:
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;
初始化时, print
是可以的。 当人设置nil
,不调用deinit
方法。
问题是操场不是现实生活。 这只是另一个不使用它们的原因(我认为这对苹果来说是一个可怕的错误)。 使用一个真正的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; } }
这就是你所期望的。
- 如何在swift中使用addTarget方法3
- CIFilter输出图像无
- UIButton单击崩溃不实现methodSignatureForSelector: – 麻烦提前无法识别的select器
- Swift:如何从分段控件中删除边框
- 为什么我不能在我的Swift iOS应用程序中使用CIFilter将图像反转为原始图像
- 在Xcode 6中显示segue将视图控制器作为iOS 7中的一个模式呈现
- CIColor到UIColor – > CIColor没有为UIColor UIExtendedSRGBColorSpace定义
- 用什么代码(在斯威夫特!)你打开/closuresiPhone的LED(闪光灯)?
- Xcode不会自动创build桥接头?