我展示的MFMailComposeViewController是这样的:
mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[self presentViewController:mc animated:YES completion:NULL];
mc = nil;并使用委托方法将其移除:
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:nil];
}问题是VC永远不会被释放,在我的应用程序中打开和关闭“发送电子邮件”功能会占用内存,但不会释放它。
我遗漏了什么?我不知道我还能怎么做,而且我所有的其他风投在调用dismissviewcontroller之后,都能很好地自行释放。
发布于 2014-05-18 22:57:46
为什么在presentViewController:mc之后立即设置mc = nil;
mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[self presentViewController:mc animated:YES completion:NULL];然后
- (void) mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:^{
mc=nil;
}];
}顺便说一下,MFMailComposeViewController有内存泄漏问题。这不仅仅是你的问题,我们都有同样的问题。
https://stackoverflow.com/questions/23722847
复制相似问题