Search code examples
iosmessageui

wait_fences: failed to receive reply: 10004003 with MessageUI


I'm using the MessageUI to send an sms in my app, but when it loads the view, it outputs the following in the log:

wait_fences: failed to receive reply: 10004003

The code is fairly simply...

#define UUID_USER_DEFAULTS_KEY @"UUID" 

#import "RegisterView.h"

@implementation RegisterView

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

{
    switch (result) {
        case MessageComposeResultCancelled:
            NSLog(@"Cancelled");
            break;
        case MessageComposeResultFailed:
            break;
            break;
        case MessageComposeResultSent:

            break;
        default:
            break;
    }

    [self dismissModalViewControllerAnimated:YES];
}




-(IBAction)sendSMS:(id)sender
{
        MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
        if([MFMessageComposeViewController canSendText])
        {
            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

            NSString *deviceID = [defaults objectForKey:UUID_USER_DEFAULTS_KEY];

            NSString *smsBody = [NSString stringWithFormat:@"add %@", deviceID];

            controller.body = smsBody;
            controller.recipients = [NSArray arrayWithObject:@"PRIVATE"];
            controller.messageComposeDelegate = self;
            [self presentModalViewController:controller animated:YES];
        }
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

I'm not sure if I really need to do anything about the message, since the app is working fine... But I always like to eliminate such things... So, what's causing it?


Solution

  • As far as I know , that warning is caused because you are trying to make some animation before the viewDidAppear method gets called. It can be your message composer for instance. If you are displaying animated things in viewDidLoad , try to display them in viewDidAppear and see if you still get the error.

    Cheers!