gpt4 book ai didi

iOS 在关闭 View Controller 后释放内存

转载 作者:行者123 更新时间:2023-11-28 20:03:52 32 4
gpt4 key购买 nike

我搜索了很多,但不幸的是没有找到可以解决我的问题的类似的。

例如,我没有使用委托(delegate),所以强委托(delegate)指针不是问题。

有一个 UItabbarcontroller 作为 Root View Controller 。加载该选项卡栏 Controller 后,它将在顶部呈现一个 View Controller (模态)。一旦该 View Controller 完成其工作,关闭 View Controller 并返回到 TabBarController。这样做的原因是在那个 View Controller 中它有一个消耗大约 10mb 内存的背景图像。

我在 -viewDidAppear 中显示 View Controller :

- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults valueForKey:@"token"]==NULL) {
UIStoryboard *storyboard = [self storyboard];
UINavigationController *navController = [storyboard instantiateViewControllerWithIdentifier:@"SignInNavigationController"];

[self presentViewController:navController animated:NO completion:nil];
}
}

那个导航 Controller 是那个 View Controller 的根 Controller 。 (我希望这不是问题)

这就是我关闭 View Controller 的方式:

[self.navigationController dismissViewControllerAnimated:YES completion:nil];

它们之间没有其他联系。

编辑:有人问这是什么问题,所以我的问题是既然那个 View Controller 被解雇了,那它的内存应该被回收吧?或者,如果没有,是否有办法收回?

(当然是圆弧)

最佳答案

这取决于您加载图像的方式。如果您在 UIImage 上使用 imageNamed:,您加载的图像实际上会被缓存。如果图像是通过 XIB 或 Storyboard加载的,也是如此。假设没有其他保留周期问题,缓存将在发布低内存通知时被清除。

如果您想比这更主动,请不要通过 XIB、 Storyboard或 UIImage 上的 imageNamed: API 加载图像。相反,请使用 imageWithContentsOfFile: API。

关于iOS 在关闭 View Controller 后释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822339/

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