0

我有下一个动作。为什么我的ModalViewController不能释放?

- (IBAction)openThumbMap:(UIButton *) sender 
{ 
    ThumbmapViewController *viewController = [[ThumbmapViewController alloc] initWithInfo:mainPages]; 
    viewController.title = self.title; 
    viewController.delegate = self; 

    [self presentModalViewController:viewController animated:YES]; 

    [viewController release]; 
} 

简单,不是吗?那么......一旦我做了[self dismissModalViewControllerAnimated:YES];在viewController里面,我回去了,但是内存不释放它。更糟糕的是,如果我再次调用它,记忆又会增加。为什么?

在我的viewController内部我创建了很多UIImageViews,我在将这些子视图添加到viewController的视图后将其释放。因此,如果所有这些都像子视图一样,必须在解散控制器后释放它,是不是?

问题是。为什么记忆还在增加呢?

编辑:

进入我的initWithInfo:方法我设置一个NSArray的属性从父的viewController的数据。有了这个数组,我创建了一堆当我完成我的模态视图控制器时释放的小UIImages。

+0

您的视图控制器是否保留其委托? – BoltClock 2011-03-30 00:54:28

+0

涉及的任何计时器?他们持有对象的保留,直到失效。 – gnasher 2011-03-30 00:55:27

+0

你的意思是? '@property(assign)id delegate;'显然没有什么不同。不,没有计时器参与。 – Linnk 2011-03-30 01:23:55

回答

0

它不是模态视图控制器本身,而是内部加载的UIImage。我发现当你拨打[UIImage imageNamed:@"blahblah.jpg"]时,iOS会创建一个缓存,以防再次调用该映像。所以,使用[UIImage imageWithData:(NSData *)]是我的不合格问题的答案。

相关问题