也许有人可以帮我解决这个奇怪的事情:
如果用户单击按钮,则会将新的UITableView推送到导航控制器.这个新视图正在进行一些数据库查询,这需要一些时间.因此我想在后台进行加载.
什么工作没有泄漏内存(但冻结屏幕,直到一切都完成):
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];
Run Code Online (Sandbox Code Playgroud)
现在我试着这样做:
// 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];
}
Run Code Online (Sandbox Code Playgroud)
这也有效,但是内存泄漏,我不知道为什么!你能帮我吗 ?
顺便说一下 - 应用程序是否可能因内存泄漏而进入AppStore?或者首先检查一下?
提前致谢 !