如何发布这个对象?

时间:2010-07-08 00:22:17

标签: objective-c

我已将MailComposer示例添加到一个简单的项目中,并在一个按钮下执行以下代码:

// display in app email
MailComposerViewController *emailClient = [[MailComposerViewController alloc] init];
[self.view addSubview:emailClient.view];
[emailClient showPicker:self];
[emailClient release];

最后一行让我很头疼。如果我不像我创建内存泄漏那样,如果我添加该行,邮件客户端显示但是当我单击取消或发送时应用程序挂起。 内存泄漏(也就是没有最后一行)一切正常。

在这样一个非常有名的案例中,最好的方法是什么? 我想在同一个方法中创建一个选项,该对象有委托等。 在应用程序的整个生命周期中保持该对象的存在是不值得的。

谢谢, 横行

1 个答案:

答案 0 :(得分:1)

当您使用由所述视图控制器管理的视图时,您需要保留视图控制器。 相反,您需要拥有一个实例变量或一个保留emailClient的属性。

您希望尽可能少地使用内存,这很棒;但有时只需要保持一些物体存活。