ios - 带 ARC 的内存 : object not release after view controller dismiss,

标签 ios objective-c memory-management viewcontroller

我有 2 个 View Controller ,

FirstViewController -> SecondViewController 通过

[self presentViewController:SVC animated:YES completion:nil];

memory graph

当我这样做时在 SecondViewController 上

[self dismissViewControllerAnimated:YES completion:nil];

enter image description here

我的问题是,为什么在我关闭此 viewcontroller 后对象没有在 secondViewController 上释放。正如您在图表上看到的那样,解雇后它并没有下降。顺便说一句,什么是释放/关闭 ViewController 的最佳方式?

[编辑]

当我从 FVC->SVC->[dismiss SVC] 开始时,我在每个 VC 上记录关于 dealloc 方法的消息。这是我的日志

enter image description here

最佳答案

这可能是非常粗糙的事情。我以前有过类似的问题。搜索你的代码,看看你是否有对对象的强引用或错误引用。

我最常犯的错误之一(也是我在互联网上看到过数百次的错误)是委托(delegate)属性。我把它们写成 @property (nonatomic, retain) id<protocol>delegate;很长一段时间,因为我意识到如果我这样做,委托(delegate)对象不会被释放。必须使用 assign在这种情况下。

希望对你有帮助...

关于ios - 带 ARC 的内存 : object not release after view controller dismiss,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20280569/

相关文章:

ios - 模拟器 iPhone X 系列 - 不断收到崩溃无法识别的选择器发送到所有按钮的实例

c++ - 标记日文字符串并转换为平假名

objective-c - 关于栈和堆的说明

c++ - Linux promise 的内存将超过其提供的内存。

memory-management - 一种具有垃圾收集和手动内存管理功能的编程语言

ios - Xcode 6 - iOS8 - 自动布局如何正确设置约束优先级

iphone - 在 iOS 上从前置扬声器播放音乐?

android - 使用 'google_maps_flutter' 插件无法在 Flutter 中显示当前用户位置

ios - 在 NSDictionary 中传递 NSDate 并转换为 NSData 以进行 jsondata 修复

iphone - 如何在 objective-c 中使在方法中创建的对象保持事件状态?