0

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

4

1 回答 1

1

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

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

于 2015-11-01T00:10:41.833 回答