我在 IOS 6 上有一个目录应用程序。所以每个视图中都有一些 UIImageView。
我认为,当我传递给其他视图时,不会释放旧的图像视图。所以我的Real 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]); }
];
更新:
我正在使用故事板。所以从一种观点到另一种观点,我正在使用 Segue。如果我回到第一个控制器,则不会调用第二个控制器的 viewDidUnload。如果我再次进入第二个视图,内存会增加,这意味着第二个视图中的所有图像视图都会再次加载。我哪里错了?
更新 2:我开始相信,它是关于 Storyboard 和 Push segue。回到第一个视图,我正在使用 push segue。我创建了另一个自定义 segue 来弹出第二个视图控制器。