我们可以在代码中使用取消初始化的变量吗,或者它们几乎没有用,因为它们会立即被释放?
Can we use deinitialized variables in code, or are they pretty much useless because they are deallocated right after?
在将释放与去初始化进行比较时,我对释放这个主题有点困惑。解除分配不会在变量被取消初始化后的那一刻发生吗……我的主要观点是,我们可以 use/manipulate 以某种方式取消初始化变量吗?或者它们几乎没用,因为释放发生在...之后?
在 Swift 中,deinit
方法作为释放过程的一部分被调用。确切地说,分配给对象的内存何时被释放你无法知道,但在对象被取消初始化后你将无法访问该对象。
除了这样做没有任何意义外,在 deinit
之后无法操作对象,因为释放过程是通过删除对的最后一个 strong
引用启动的物体。因为没有引用,你怎么能操作这个对象呢。 (我想您可以使用 unowned/unsafe 引用来尝试访问该对象,但这会导致您的应用程序崩溃)
在将释放与去初始化进行比较时,我对释放这个主题有点困惑。解除分配不会在变量被取消初始化后的那一刻发生吗……我的主要观点是,我们可以 use/manipulate 以某种方式取消初始化变量吗?或者它们几乎没用,因为释放发生在...之后?
在 Swift 中,deinit
方法作为释放过程的一部分被调用。确切地说,分配给对象的内存何时被释放你无法知道,但在对象被取消初始化后你将无法访问该对象。
除了这样做没有任何意义外,在 deinit
之后无法操作对象,因为释放过程是通过删除对的最后一个 strong
引用启动的物体。因为没有引用,你怎么能操作这个对象呢。 (我想您可以使用 unowned/unsafe 引用来尝试访问该对象,但这会导致您的应用程序崩溃)