Приложение UIWebView аварийно завершает работу с сигналом «0» при загрузке PDF и некотором тестировании на обезьянах - PullRequest
0 голосов
/ 02 августа 2011

Я использую 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.
}

необходимость Пожалуйста, предложите какой-нибудь способ обновить память, как только появится предупреждение о памяти.

Спасибо

...