由于带有Storyboard的UIImageView,内存警告和崩溃

时间:2012-10-15 11:48:09

标签: ios memory-leaks automatic-ref-counting

我在IOS 6上有一个目录应用程序。所以每个视图中都有一些UIImageView。

我认为,当我传递给其他视图时,旧的图像视图不会被释放。所以我的真实记忆。变成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]); }
                                              ];

更新

我正在使用故事板。所以从一种观点到另一种观点,我正在使用Segue。如果我返回第一个控制器,则不会调用第二个控制器的viewDidUnload。如果我再次进入第二个视图,内存会增加,这意味着第二个视图中的所有图像视图都会再次加载。我哪里错了?

更新2: 我开始相信,它是关于Storyboard和Push segue。要回到第一个视图,我正在使用push segue。我创建另一个自定义segue弹出第二个viewcontroller。

1 个答案:

答案 0 :(得分:0)

如果您使用Instruments监视内存使用情况,请确保Zombies已关闭(方案选项)。默认情况下,Zombies不会被处理掉,因此您的内存使用量会爆炸。