【发布时间】:2011-01-27 08:44:33
【问题描述】:
也许有人可以帮我解决这个奇怪的事情:
如果用户点击一个按钮,一个新的 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];
现在我尝试这样做:
// 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];
}
这也有效,但会泄漏内存,我不知道为什么! 你能帮忙吗?
顺便说一句 - 一个应用程序是否有可能以少量内存泄漏进入 AppStore ?还是先检查一下?
提前致谢!
【问题讨论】:
-
您好,泄漏在 getController 方法中。
-
嗯,在哪里?你不发布workController??
标签: iphone memory-leaks