为什么我的ModalViewController没有发布?

时间:2011-03-30 00:50:38

标签: iphone objective-c modal-dialog modalviewcontroller dynamic-memory-allocation

我有下一个动作。

- (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,当我完成模态视图控制器时,我会释放它。

1 个答案:

答案 0 :(得分:0)

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