Я использую UIWebView для загрузки файлов PDF. Я прихожу в веб-представление из подкласса UITableViewController.
PDF-файлы хорошего размера.
Проблема
всякий раз, когда я тестирую приложение. Вылетает и говорит:
Program received signal: “0”.
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")
Я понимаю, что Data formater - это ошибка отладчика. Но сигнал: «0» это связано с памятью (я тоже видел этот сигнал при завершении с трамплина.).
Я ставлю точку останова на view:didRecievedMemoryWarning
, но он никогда не идет туда.
некоторые файлы PDF слишком запаздывают (7,5+ МБ).
Если проблема в больших PDF-файлах, то, пожалуйста, предложите любой другой способ, чтобы эти тяжелые PDF-файлы хорошо загружались на iPhone.
Ниже приведен фрагмент кода.
//////////////////// for PDFs //////////////////
-(void)webViewloadRequest:(NSString *)URLString
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MY_WebViewController urldecode:contentURL]]];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
if(![request isEqual:[NSNull null]])
[self.myWebView loadRequest:request];
//[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:contentURL]]];
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
// finished loading, hide the activity indicator in the status bar
[webActivityIndicator stopAnimating];
[self.myWebView.delegate release]; // read this somewhere in SO to retain and release the delegate.
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
NSLog(@"DOCS ABOUT TO CRASH !!!");
[self hideModalActivityIndicator];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Memory Warning!" message:@"The file was too large to load.\n So the request is terminated." delegate:self cancelButtonTitle:nil otherButtonTitles:@"ok",nil];
//[self retain];
alert.tag=MEMORY_WARNING_ALERT;
[alert show];
[alert release];
alert = nil;
// Release any cached data, images, etc. that aren't in use.
}
необходимость
Пожалуйста, предложите какой-нибудь способ обновить память, как только появится предупреждение о памяти.
Спасибо