极慢的MFMailComposeViewControllerDelegate

时间:2010-04-04 05:02:07

标签: iphone email cocos2d-iphone

我有点奇怪的问题。我正在尝试发送应用内电子邮件。我也在使用Cocos2d。它工作,只要我得到邮件窗口,我可以发送邮件,但它是非常慢。它似乎每隔一秒左右接受一次触摸。我检查了cpu的使用情况,它很低。我暂停了我的导演,所以别的什么都不应该发生。有任何想法吗?我把头发拉了出来。

我看了一些例子并做了以下事情:

让我的场景成为邮件代表:

@interface MyLayer : CCLayer <MFMailComposeViewControllerDelegate> {
    ...
}

并在场景中实现了以下功能:

-(void) showEmailWindow: (id) sender {
    [[CCDirector sharedDirector] pause];

    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject: @"My subject here"];

    NSString *emailBody = @"<h1>Here is my email!</h1>";

    [picker setMessageBody:emailBody isHTML:YES];

    [myMail presentModalViewController:picker animated:NO];
    [picker release];

}

我还实现了mailComposeController来处理回调。

1 个答案:

答案 0 :(得分:0)

在cocos2d论坛(http://www.cocos2d-iphone.org/forum)上,CJ帮助了我。

重要的一点是我没有打电话给[dicector stopAnimation],但也有一些其他的好点。

我现在在presentModalViewController之前执行此操作:

CCDirector *director = [CCDirector sharedDirector];
[director pause];
[director stopAnimation];
[director.openGLView setUserInteractionEnabled:NO];

然后当我收到回调时,在mailComposeController中,我最后会这样做:

CCDirector *director = [CCDirector sharedDirector];
[director.openGLView setUserInteractionEnabled:YES];
[director startAnimation];
[director resume];

[myMail.view.superview removeFromSuperview];

希望这有助于其他人。