我有下一个动作。
- (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:方法我使用父viewController中的数据设置NSArray属性。使用这个数组,我创建了一堆小UIImages,当我完成模态视图控制器时,我会释放它。
答案 0 :(得分:0)
它不是模态视图控制器本身,而是内部加载的UIImage。我发现当你拨打[UIImage imageNamed:@"blahblah.jpg"]
时,iOS会创建一个缓存,以防你再次调用该图像。因此,使用[UIImage imageWithData:(NSData *)]
是我的错误表达问题的答案。