gpt4 book ai didi

iphone - iOS4 - 快速上下文切换

转载 作者:行者123 更新时间:2023-12-03 18:45:35 25 4
gpt4 key购买 nike

当应用程序进入后台运行状态时,可以确定有多少脏内存使用量。在苹果视频中提到应尽可能减少脏内存。

但在我的应用程序中,我使用导航 Controller 来推送和弹出 View 。从大约 20 个不同的页面移动后,脏内存使用量达到 30 MB 左右。

此外,在“dismissModalViewControllerAnimated”和“popViewControllerAnimated”上,不会调用 dealloc。

我有两个疑问:

  1. 多少脏内存可以上线?
  2. 支持后退按钮的导航 Controller 的替代方案是什么?

提前致谢。

最佳答案

如果未调用 dealloc,您可能仍会保留 UIViewController。

也许您在这些 UIViewController 中设置委托(delegate)或其他类来保留并引用备份树(循环引用)。

调试此问题的一种方法是在 UIViewController 中重载保留和释放,并设置断点并记录保留计数。

这是我留下的一个神奇的片段,当我不明白为什么我仍然保留某些东西时,它对我有很大帮助。

- (id)retain
{
NSLog(@"retain \t%s \tretainCount: %i", __PRETTY_FUNCTION__ , [self retainCount]);
return [super retain];
}
- (void)release
{
NSLog(@"release \t%s \tretainCount: %i", __PRETTY_FUNCTION__ , [self retainCount]);
[super release];
}
- (id)autorelease
{
NSLog(@"autorelease \t%s \tretainCount: %i", __PRETTY_FUNCTION__ , [self retainCount]);
return [super autorelease];
}

__PRETTY_FUNCTION__ 是 CLang 中的一个特殊隐藏宏,它以 char 数组的形式提供漂亮的 Objective-C 函数名称。

关于iphone - iOS4 - 快速上下文切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185626/

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