Sun*_*nil 6 iphone context-switching ios4
当应用程序进入后台运行状态时,有多少脏内存使用是好的.在苹果视频中,我们提到应尽可能减少脏记忆.
但在我的应用程序中,我使用导航控制器来推送和弹出视图.从大约20个不同页面移动后,脏内存使用量达到30 MB左右.
同样在"dismissModalViewControllerAnimated"和"popViewControllerAnimated"上,不调用dealloc.
我有两个疑问:
提前致谢.
如果未调用 dealloc,您可能仍会保留 UIViewController。
也许您在这些 UIViewController 中设置委托或其他类来保留并引用备份树(循环引用)。
调试此问题的一种方法是在 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];
}
Run Code Online (Sandbox Code Playgroud)
__PRETTY_FUNCTION__是 CLang 中的一个特殊隐藏宏,它以 char 数组的形式提供漂亮的 Objective-C 函数名称。
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |