UIWebView nie zwalnia wszystkich aktywnych bajtów za pomocą ARC

Obecnie buduję aplikację kontrolera nawigacji w systemie iOS 5.1, która używa ARC. Często muszę wyświetlać strony internetowe i stworzyłem przeglądarkę internetową, która jest po prostu UIWebView z pewnymi niestandardowymi treściami po bokach. Gdy użytkownik skończy przeglądać stronę, naciska przycisk Wstecz, który powinien zwolnić całą pamięć związaną z niestandardową przeglądarką internetową. Mój problem polega na tym, że cała pamięć nie wydaje się być zwolniona po naciśnięciu przycisku Wstecz. Zbudowałem aplikację zabawkową (na github) to tylko kilka przycisków, z których każdy ma pierwszego odpowiadającego, który wywołuje inną stronę.

<code>@implementation ViewController
-(IBAction)googlePressed:(id)sender
{
   CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.google.com"];
   [self.navigationController pushViewController:customWebView animated:NO];
 }
-(IBAction)ksbwPressed:(id)sender
{
   CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.ksbw.com/news/money/Yahoo-laying-off-2-000-workers-in-latest-purge/-/1850/10207484/-/oeyufvz/-/index.html"];
   [self.navigationController pushViewController:customWebView animated:NO];
}
-(IBAction)feedProxyPressed:(id)sender
{
   CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://feedproxy.google.com/~r/spaceheadlines/~3/kbL0jv9rbsg/15159-dallas-tornadoes-satellite-image.html"];
   [self.navigationController pushViewController:customWebView animated:NO];
}
-(IBAction)cnnPressed:(id)sender
{
   CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.cnn.com/2012/04/04/us/california-shooting/index.html?eref=rss_mostpopular"];
   [self.navigationController pushViewController:customWebView animated:NO];
}
</code>

CustomWebView to po prostu UIWebView połączony w IB z właściwością UIWebView

<code>@implementation CustomWebView

@synthesize webView, link;

- (id)initWithStringURL:(NSString *) stringURL
{
   if (self = [super init]) {
       link = stringURL;
   } 
   return self;
}


- (void)viewDidLoad
{
   [super viewDidLoad];
   NSURL *url = [NSURL URLWithString:link];
   NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
   [webView loadRequest:urlRequest];
}

- (void)viewDidUnload
{
   [super viewDidUnload];
}
</code>

Moim problemem jest ustawienie linii bazowej sterty jako początkowego kontrolera ViewController po załadowaniu wszystkiego. Następnie sprawdzam stertę po załadowaniu strony, a następnie wracam do ViewController i otrzymuję następujące obrazy:

Pokazuje to, że po każdej serii klikania przycisku i powrotu do ViewController sterty nadal rosną, mimo że CustomWebView powinien zostać zwolniony.

EDYTOWAĆ:

Przykładowy projekt opisany powyżej można znaleźćna github

questionAnswers(6)

yourAnswerToTheQuestion