Stackoverflow와 인터넷에서 관련된 질문과 대답을 모두 확인했지만 결론은 없습니다. ipad 앱을 개발하고 있는데, NSData로 웹 서버에 PDF 파일을 다운로드하고 UIWebView에 표시하는 기능을 요청합니다. 문제는 pdfviewer에서 mainviewcontroller로 앱이 닫히고 메모리가 해제되지 않아서 항상 메모리 사용량이 증가하더라도 문제입니다. 그것은 14 메가 바이트로 시작하고 그때마다 나는 주 컨트롤러에서 pdfviewer까지 추가합니다. 나는 호를 사용하고 있기 때문에 그것을 놓을 수 없다. 나는 또한 캐시를 지우고있다.UIWebView는 메모리를 해제하지 않습니다.
MAINVIEW의 controller.m
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showpdf"]){
PdfViewer *pdfviewer=(PdfViewer*)[segue destinationViewController];
pdfviewer.ReportID=TheReportID;
pdfviewer.TabID=_TabID;
}
}
PdfViewer.h
@property (strong, nonatomic) IBOutlet UIWebView *MainWebView;
나는 또한있는 UIWebView 프로그램 대신 함께 IBOutlet을 추가하려고하지만 여전히 '나오지 않았어
-(void)viewDidLoad
{
NSURL *url = [NSURL fileURLWithPath:filePath];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_MainWebView loadRequest:request];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"ShowMain5"]){
MainViewController *mv=(MainViewController*)[segue destinationViewController];
mv.TabID=_TabID;
}
}
-(void)dealloc{
NSLog(@"test");
}
PdfViewer.m 문제를 해결하지 마라.
프로그래밍 사용자를 눌러 뒤로 버튼 내가하는 모든 일이 modally.All의 segues은 참고 모달 mainviewcontroller로 돌아가입니다 (대체)
@implementation PdfViewer
UIWebView *webview;
- (void)viewDidLoad
{
webview=[[UIWebView alloc]initWithFrame:CGRectMake(35, 35, 768,959)];
[webview loadRequest:request];
[self.view addSubview:webview];
}
.
내가 그 사람이 전에 viewcontrollers와 유사한 문제를했고 내가 메모리가 동일한 수준으로 유지 생각 지금이 질문 UIViewController -dealloc method not called을 발견하면 내가 확인 mainviewcontroller 다시 segues 때 pdfviewer이 할당 해제를 호출하지 않습니다 알 수있는 바와 같이,하지만 지금은 pdfviewer을 제공합니다 창 계층 구조 오류가 아닙니다.
어떻게 _MainWebView가 정의되었고 그것에 대한 포인터가 있습니까? –
질문을 편집했습니다. 강한 IBoutlet으로 정의되었습니다. 이제는 약합니다.또한 dealloc 수 및 메모리에서 제거 할 수 있도록 프로그래밍 방식으로 추가하려고했지만 작동하지 않았다. – Codette
은 PdfViewController에서 NSLog를 사용하여 dealloc 메소드를 구현하고 –