【发布时间】:2011-06-08 06:25:39
【问题描述】:
我的部分代码以如下方式呈现了一个 UITableViewController:
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"Settings" bundle:nil];
flipside = [[UINavigationController alloc] initWithRootViewController:controller];
controller.delegate = self;
flipside.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:flipside animated:YES];
[flipside release];
[controller release];
使用泄漏工具,不会发现内存泄漏。但是,每当我打开设置菜单(如上面的代码所示)时,似乎分配了更多内存并且从未释放 - 每次几乎 100 kB。
奇怪的是,最后包含两个释放语句似乎对内存分配没有影响..?我对 Objective-c 中的内存分配有什么误解,或者发生了什么奇怪的事情?
任何想法都非常感谢 - 谢谢!
【问题讨论】:
-
你是如何测量内存增加的?另外,您是在模拟器上还是在设备上测量这种增长?
-
使用模拟器 - 使用“分配”工具运行。每次我打开设置菜单时,“所有分配”项都会显着上升。
-
您是否在 NSZombieEnabled 设置为 YES 的情况下运行?
-
前段时间我使用 NSZombieEnabled 对其进行测试,但后来删除了该选项。我刚刚也尝试在实际设备上运行它 - 结果相同。
-
查看一些alloc数据,看起来控制器的Nib文件中存在的所有对象仍然加载到内存中?
标签: iphone objective-c memory-management memory-leaks uiviewcontroller