IPhone SDK - Leaking Memory with performSelectorInBackground

Posted by Steblo on Stack Overflow See other posts from Stack Overflow or by Steblo
Published on 2010-03-14T10:43:54Z Indexed on 2010/03/14 10:55 UTC
Read the original article Hit count: 356

Filed under:
|
|
|

Hi. Maybe someone can help me with this strange thing:

If a user clicks on a button, a new UITableView is pushed to the navigation controller. This new view is doing some database querying which takes some time. Therefore I wanted to do the loading in background.

What works WITHOUT leaking memory (but freezes the screen until everything is done):

WorkController *tmp=[[WorkController alloc] initWithStyle:UITableViewStyleGrouped];
self.workController=tmp;
[tmp release];

[self.workController loadList]; // Does the DB Query
[self.workController pushViewController:self.workController animated:YES];  

Now I tried to do this:

    // Show Wait indicator
    ....

    WorkController *tmp=[[WorkController alloc] initWithStyle:UITableViewStyleGrouped];
    self.workController=tmp;
    [tmp release];

    [self performSelectorInBackground:@selector(getController) withObject:nil];
}

-(void) getController {
    [self.workController loadList]; // Does the DB Query
    [self.navigationController pushViewController:self.workController animated:YES];
}

This also works but is leaking memory and I don't know why ! Can you help ?

By the way - is it possible for an App to get into AppStore with a small memory leak ? Or will this be checked first of all ?

Thanks in advance !

© Stack Overflow or respective owner

Related posts about iphone

Related posts about SDK