小编Ste*_*blo的帖子

IPhone SDK - 使用performSelectorInBackground泄漏内存

也许有人可以帮我解决这个奇怪的事情:

如果用户单击按钮,则会将新的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?或者首先检查一下?

提前致谢 !

iphone memory-leaks

0
推荐指数
1
解决办法
3588
查看次数

标签 统计

iphone ×1

memory-leaks ×1