【发布时间】:2013-03-06 07:27:29
【问题描述】:
在一个控制器中,我通过以下方式添加其他控制器的视图:
objSecondController = nil;
objSecondController = [[SecondController alloc]initWithNibName:@"SecondController"
bundle:nil];
[self.view addSubview:objSecondController.view];
在加载 objSecondController 时,我做了以下操作:
self.pdfView = [[PDFView alloc] init];
[self.view addSubview:self.pdfView.view];
然后我根据它的方法指定pdf
在更改 pdf 的按钮单击方法之一中,我执行以下操作:
if(self.pdfView)
{
[self.pdfView.view removeFromSuperview];
[self.pdfView release];
self.pdfView = nil;
}
然后再做一次:
self.pdfView = [[PDFView alloc] init];
[self.view addSubview:self.pdfView.view];
然后我根据它的方法指定pdf
现在 self.pdfView 是第三方库,每当我使用 self.pdfview 时,它的保留计数会自动增加,因此当我释放 self.pdfView 时,它的保留计数不会变为 0,因此即使我释放它们它也不会解除分配。
pdf 文件大小分别为 25MB 和 39MB,因此之前的内存不会完全解除分配,它会因内存过多而崩溃。
self.pdfView应该怎么做才能完全释放内存,这样在加载其他大pdf时不会产生问题?
【问题讨论】:
-
您使用的是 ARC 还是 MRR?您将不得不显示一些代码;闲聊无济于事。
-
我已经编辑了我的问题。我不使用 ARC
标签: iphone ios memory-management memory-leaks