2012-10-15 60 views
0

我在iOS 6上有一個目錄應用程序。所以在每個視圖中都有一些UIImageView。由於UIImageView與故事板導致的內存警告和崩潰

我認爲,當我傳遞給其他觀點時,舊的圖像視圖並未發佈。所以我真正的Mem。變成300MB和虛擬內存。變成500MB,我收到內存警告。

我用

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    itemImageView = nil; 
    scrollView = nil; 
} 

我應該怎麼做嗎?我是否缺少平常的東西?

更新:

我初始化ImageView的是這樣的:

__block UIImageView *imageview = [[UIImageView alloc] init]; 

,並通過AFNetworking設置:

AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:imageRequest 
                        imageProcessingBlock:nil 
                          cacheName:@"nscache" 
                           success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){ 
                            imageview.image = image; 
                           } 
                           failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){ NSLog([error description]); } 
               ]; 

更新:

我用故事板。所以從一種觀點到另一種觀點,我正在使用塞格。如果我回到第一個控制器,則不會調用第二個控制器的viewDidUnload。如果再次轉到第二個視圖,內存會增加,這意味着第二個視圖中的所有圖像視圖都會再次加載。我錯在哪裏?

更新2: 我開始相信,它是關於Storyboard和Push segue。要回到第一個視圖,我正在使用push segue。我創建另一個自定義的細節,彈出第二個視圖控制器。

+0

你是如何聲明/初始化'itemImageView'和'scrollView'的?也許你需要做'[itemImageView release];'和'[scrollView release]'; –

+0

@AleksG我認爲他正在使用ARC,所以發佈是不可接受的 – NeverBe

+1

@Never可能,但我想讓他說明他在使用它。從他展示的代碼中,這兩位是班級成員;所以他們必須以某種方式被宣佈/初始化。如果他使用明確的「保留」,那麼他可能需要「釋放」。 –

回答

0

如果您使用儀器來監視內存使用情況,請確保殭屍已關閉(方案選項)。默認情況下,殭屍不會丟失,所以你的內存使用量會爆炸。

相關問題