gpt4 book ai didi

ios - 自定义 UIViewController 中的内存管理

转载 作者:行者123 更新时间:2023-11-28 17:35:54 25 4
gpt4 key购买 nike

我是 iOS 开发的新手,但我熟悉 Obj-C 中的内存管理基础知识。然而,Apple 关于自定义 UIViewControllers 的文档让我有点困惑。

因此,我有一个 PagingController,它存储一个 EntryViewController 对象数组。 (它们都是 UIViewController。)这些对象是动态加载的,当然也会在适当的时候释放。 PagingController中的 View 是在-loadView中创建的,并存储在self.view中,正如文档中所说。
每当我加载 EntryViewController(如 ctrl)时,我都会调用 [self.view addSubview:ctrl.view];。我还需要调用 ctrl.parent = self;,因为目标操作系统是 3.0,我不想修改私有(private)变量 (_parentViewController)。 (parent 定义为 @property(assign) PagingController *parent;)

这是我的问题:

  1. 我必须自己释放 self.view 还是由 UIViewController 负责?
  2. 我是否必须保留 parent(EntryViewController 中的属性)?我认为这毫无意义,因为所有 subview Controller 都在父 View Controller 卸载时被释放。
  3. 是否必须在 EntryViewController-dealloc 方法中调用 [self.view removeFromSuperview]?文档说,我必须管理所有 subview ,所以我不确定这是否会自动调用。

或者我只是对如何首先创建自定义 View Controller 感到困惑?

最佳答案

  1. UIViewController 会处理这个
  2. 你不应该保留父级,将属性设置为分配,否则你将有一个保留周期
  3. View Controller 会处理它的 View ,你只需要释放你保留的其他 subview (不需要 removeFromSuperview)

关于ios - 自定义 UIViewController 中的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9836016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com