我们可以在代码中使用未初始化的变量,还是它们几乎没用,因为它们之后被释放?

时间:2015-10-31 23:20:47

标签: ios swift memory-management dealloc deinit

在将其与deinitaizlization进行比较时,我对deallocation的主题感到有点困惑。在取消初始化变量后的那一刻,不会发生解除分配.....我的主要观点是,我们可以以某种方式使用/操纵未初始化的变量吗?或者它们几乎没用,因为释放发生在......之后......

1 个答案:

答案 0 :(得分:1)

在Swift中,deinit方法作为释放过程的一部分被调用。确切地说,当分配给对象的内存被释放时,您无法知道,但是在对象被去除后,您无法访问该对象。

除了这样做没有任何意义之外,在deinit之后操作对象是不可能的,因为取消分配过程是通过删除最后strong个引用来启动的。物体。因为没有引用你怎么能操纵对象。 (我想您可以使用无主/不安全的引用来尝试访问该对象,但这会导致您的应用程序崩溃)