Утечка памяти в DSBezelActivityView - PullRequest
0 голосов
/ 21 ноября 2011

Я получил UIWebView в своем проекте с DSBezelActivityView, но, похоже, утечка памяти.Я использую DSBezelActivityView для того, когда страница загружается.Работает так, как должно быть рядом с утечкой памяти.Как решить эту утечку памяти?

Я использовал этот код: http://www.dejal.com/developer/dsactivityview

Это то, что анализатор говорит: Объект утечка: выделенный объект не упоминается позже в этом пути выполнения исохранить счет +1 Метод возвращает объект Objective-C с +1 счетом сохранения

- (void)viewDidLoad
{

NSString *urlAddress = [NSString stringWithFormat:@"http://www.google.be"];

//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];

//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
webView.delegate = self;

//Load the request in the UIWebView.
[webView loadRequest:requestObj];
[super viewDidLoad];

}
- (void)webViewDidStartLoad:(UIWebView *)webView {
[DSBezelActivityView newActivityViewForView:aiv withLabel:@"Laden..." width:90];
NSLog(@"werkt dit");

}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[DSBezelActivityView removeView];

}  

1 Ответ

1 голос
/ 21 ноября 2011

Похоже, вы вытекли объект, возвращенный newActivityViewForView:withLabel:width.

Согласно документации Apple :

Вам принадлежит любой созданный вами объект

Вы создаете объект, используя метод, имя которого начинается с «alloc», «new», «copy» или «mutableCopy» (для например, alloc, newObject или mutableCopy).

Так что вам нужно отпустить объект в нужный момент, я думаю, что это webViewDidFinishLoad:. Ваш код должен выглядеть примерно так:

- (void)webViewDidStartLoad:(UIWebView *)webView {
    DSBezelActivityView *bezelActivityView = [DSBezelActivityView newActivityViewForView:aiv withLabel:@"Laden..." width:90];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [DSBezelActivityView removeView];
    [bezelActivityView release];
    bezelActivityView = nil;
} 

У меня нет этого DSBezelActivityView класса, поэтому мой ответ основан на Соглашениях об управлении памятью Какао. Имейте в виду, что мог бы создать метод, начинающийся с new , который не соответствует соглашению.

...