ios - ObjC : is an object released IMMEDIATELY when no one references it?

标签 ios objective-c memory-management uiviewcontroller

我遇到了一个 View Controller 的问题,该 View Controller 被关闭且未被引用但仍在内存中,只是想知道一般情况下当没有人引用它时对象实际上何时在内存中释放?

我用来测试的方法是,我从 Facebook 安装了 PVC 工具,并在 View Controller 出现时用它打印出 View 层次结构,在它被关闭后,我确保没有人引用它并暂停执行,所以我可以从之前的 PVC 工具中po View Controller 的内存地址,但我仍然可以在那里看到 View Controller 实例。

谢谢!

最佳答案

你似乎对从内存中释放和从内存中清除感到困惑。当类被销毁时,它占用的内存并没有清零,就像你在文件系统中删除一个文件时,磁盘 block 也没有清零。

这只会占用太多时间并且收效甚微。

被释放仅仅意味着类占用的内存现在可以重新使用。

查看类是否被销毁的一种方法是在dealloc方法中添加一条日志:

- (void)dealloc
{
    NSLog(@"I'm being destroyed");
}

关于ios - ObjC : is an object released IMMEDIATELY when no one references it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32601879/

相关文章:

ios - UICollectionViewCell 图像中的 UIImageView 不适合

iOS 11 Xcode 9 : CoreML linker command failed with exit code 1 (use -v to see invocation)

ios - 在不使用UIDocumentInteractionController的情况下从iOS应用程序在Whatsapp上共享图像

iOS 使用推特登录

delphi - 为什么我的 Delphi 程序的内存继续增长?

c - 我有足够的内存,但 mmap 一直失败说无法分配内存

c - 为什么我的程序返回(空)和乱码而不是预期的输出

ios - 为什么 +[UIColor whiteColor] 不等于另一个白色?

ios - 使用 waitForExpectations 时的 API 冲突

objective-c - 将 C 数组传递给 Objective-C 方法