MFMailComposeViewController callback on wrong thread, should be on main thread

Originator:yufei
Number:rdar://18143349 Date Originated:26-Aug-2014 07:13 PM
Status:Open Resolved:
Product:iOS Product Version:iOS8, xcode6-beta5
Classification:Nice to have Reproducible:Always
 
Summary:
This is a simulator only problem. 

MFMailComposeViewController does not populate and is not clickable. After a few seconds, the delegate callback didFinishWithResult: is automatically triggered with MFMailComposeResultCancelled. This call is on a background queue, even though this callback should be on the main thread. Basically, MFMailComposeViewController is unusable on simulator (I know you can't actually send mail on simulator) and will crash for any main thread assertions.

Steps to Reproduce:
1. Run attached project.
2. Tap "Open Composer"
3. Wait a few seconds.

Expected Results:
To: field should have my email. Email form should be editable. didFinishWithResult: should not trigger without UI interaction. When didFinishWithResult: does trigger (i.e. tapping Cancel), it should be on main thread

Actual Results:
To: field is blank. The email form is not editable. After a few seconds, didFinishWithResult: is called. I put a main thread assertion in there, and it'll crash.

Version:
iOS8.0 (12A4345d)

Notes:


Configuration:
iPhone or iPad simulator

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!