首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIViewController类内存问题- presentModalViewController

UIViewController类内存问题- presentModalViewController
EN

Stack Overflow用户
提问于 2011-03-27 20:01:57
回答 2查看 714关注 0票数 0

我的iPhone应用程序有一些内存问题,我不知道发生了什么。

因此,我观察到,当从一个UIViewController转到另一个时,应用程序的内存使用量不断上升。我使用了"Allocations“工具中的"Mark Heap”工具,它认为唯一未释放的对象是我的UIViewControllers。

更具体地说,我让我的两个UIViewControllers。第一个文件名为PuzzleViewController,第二个文件名为Options。当应用程序启动时,会出现PuzzleViewController。我在这里标记了一个堆,以设置基线,然后按下" Options“按钮,将显示Options UIViewController。我返回到第一个,并再次标记一个堆。在一次又一次地重复这些步骤(大约20次:D)之后,我观察到在每个Heapshot之后,我有大约22个对象保持活动状态。其中两个对象是我的UIViewControllers的实例。

我真的不知道发生了什么。

下面是如何切换到Options UIViewController的方法:

代码语言:javascript
复制
- (IBAction) onOptionsButton: (id) sender
{
    Options *viewController = [[Options alloc] init];
    [self presentModalViewController:viewController animated:YES];
    [viewController release];
}

下面是我返回PuzzleViewController的方法:

代码语言:javascript
复制
- (IBAction) onMainMenu:(id) sender
{   
    PuzzleViewController *modalView = [[PuzzleViewController alloc] init];
    [self presentModalViewController:modalView animated:YES];
    [modalView release];
}

我的viewDidUnload函数被正确调用,但从未调用过dealloc函数。

谢谢你,安德烈

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-27 20:33:22

您应该调用dismissModalViewController,而不是再次调用presentModalViewController,也不应该重新创建PuzzleViewController

票数 2
EN

Stack Overflow用户

发布于 2011-03-27 20:48:21

Dismissing a Modal View Controller

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5449074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档