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 *)]是我的不合格問題的答案。

相關問題