Предупреждение о памяти при загрузке PDF в UIWebView - PullRequest
1 голос
/ 04 ноября 2011

У меня есть 7 ViewControllers в приложении, один из которых загружает локальный PDF в UIWebView.При начальной загрузке проблем нет, но если я оставлю этот ViewController и вернусь к нему, то во второй или третий раз я получу «Предупреждение о получении памяти» при отладке на iPad (я не сталкивался с этой проблемой в симуляторе, ноэто не значит, что я не получу это в конце концов).Я убедился, что регистр и прописные буквы соответствуют файлу и моему коду, и я не получаю ошибок или предупреждений при сборке.Мне рассказывали разные вещи о том, что xcode4 нужен @ property / @ synthesize / dealloc, поэтому я пробовал как с этим, так и без него, и результаты не изменились.

Вот мой файл .h

#import <UIKit/UIKit.h>

@interface Article6 : UIViewController {
    IBOutlet UIWebView *webview;
}

@end

и вот мой файл .m

#import "Article6.h"

@implementation Article6


- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView
{
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"mfa" ofType:@"pdf" inDirectory:NO];
    NSLog(@"path: %@",path);
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webview loadRequest:request];

}


- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    //return (interfaceOrientation == UIInterfaceOrientationPortrait);
    return YES;
}

@end

Я использую жест смахивания из раскадровки, а также обычную кнопку, и эта ошибка возникает в обоих переходах.И да, все розетки подключены.

Ответы [ 2 ]

0 голосов
/ 30 марта 2016
NSString *path = [[NSBundle mainBundle] pathForResource:@"mfa" ofType:@"pdf" inDirectory:nil];
0 голосов
/ 05 ноября 2011

Проверьте ваши собственные комментарии в вашем методе viewDidUnload.Это то место, где вам нужно выпустить, и создается впечатление, что вы создаете новое представление каждый раз, когда загружаете представление.Так что отпустите, когда выгрузите.Я предполагаю, что deAlloc не будет вызываться каждый раз, когда вы закрываете веб-просмотр.

Чтобы убедиться, что я просто использую некоторые журналы, чтобы увидеть ваш счетчик сохраняемых данных и убедиться, что вы его не используете.Удачи!

...