2

バックグラウンドで実行される別のクラスメソッド MFMessageComposeから (topviewcontroller) にモデルをポップアップしたい。NSObject

MFMessageComposeこのコードを使用してモデルをポップアップします:

MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText])
{
    controller.body = @"Check out FundooSpace for mobile.Download it now from app.fundoospace.net/FundooSpace/d";
    controller.recipients = (NSArray *)passa;
    passa = nil;
    AppDelegate * appDelegateObject1 = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    controller.messageComposeDelegate = self;
    [appDelegateObject1.navigationCntr.topViewController presentModalViewController:controller animated:NO];
}

それは正常に動作します。しかし、送信またはキャンセルボタンをクリックすると、アプリがクラッシュしてエラーが発生します

wait_fences: failed to receive reply: 10004003

私に提案してください。

4

1 に答える 1

0

あなたの質問に含まれているコードを正確にチェックしましたが、私にとってはデバイス上でうまく動作しています。

1).hにデリゲートがあることを確認してください

@interface ViewController : UIViewController <MFMessageComposeViewControllerDelegate>

2) .m にもデリゲート メソッドを実装する必要があります。

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
    NSLog(@"didFinishWithResult");

    // you have to deal with the result var

    switch (result) {
        case MessageComposeResultCancelled:
            NSLog(@"Cancelled");
            break;
        case MessageComposeResultFailed:
            UIAlertView *alert = [[UIAlertView alloc] 
                          initWithTitle:@"MyApp" 
                                message:@"Unknown Error"
                               delegate:self 
                      cancelButtonTitle:@”OK” 
                      otherButtonTitles:nil];
            [alert show];
            [alert release];
            break;
        case MessageComposeResultSent:

            break;
        default:
            break;
    }

    [self dismissModalViewControllerAnimated:YES];
}

3) iOS6.0 を使用している場合、「古い」presentModalViewController:animatedは推奨されないため、presentViewController:animated:completion:に変更します。Xcodeもこれを示しているためです。

于 2013-04-23T14:02:40.597 に答える