Я получаю утечку в [пул релиз];Утечка памяти в Autorelease pool in Iphone sdk
Мой код здесь:
#pragma mark UISearchBarDelegate delegate methods
- (void)performSearch:(UISearchBar *)aSearchBar
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
artistName= [aSearchBar.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if ([artistName length] > 0)
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
LyricsAppDelegate* appDelegate = (LyricsAppDelegate*) [ [UIApplication sharedApplication] delegate];
artistsList=[appDelegate doSearch:artistName ];
[theTableView reloadData];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[aSearchBar resignFirstResponder];
}
else
{
[aSearchBar resignFirstResponder];
}
[NSThread exit];
[pool release];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)aSearchBar
{
@try {
[NSThread detachNewThreadSelector:@selector(performSearch:) toTarget:self withObject:aSearchBar];
[aSearchBar resignFirstResponder];
}
@catch (NSException * e) {
NSLog(@"\n caught an exception");
}
@finally {
}
}
Здесь я получаю утечку в [выпуска пула]; в методе performSearch.
Как я могу это решить.
Любая помощь будет очень признательна.
Thank you, Monish.
да я попытался, как до ур предложения, но теперь она показывает утечку на линии: artistName = [aSearchBar.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; – monish
Когда я снял поток, поиск очень медленный, на самом деле я получаю данные от синтаксического анализатора. – monish
Я имею в виду, почему вам нужно выйти из потока, используя функцию [NSThread exit]? Вы пытались просто удалить вызов [NSThread exit]? – Vladimir