RichNasser RichNasser - 2 years ago 72
iOS Question

UIActivityViewController freezes when email or text but not fb or Twitter

I have a very standard implementation of UIActivityViewController. When I use Twitter or Facebook, the view controller is dismissed, and the app continues working. However, when I email or text the same content, the view controller is dismissed but the app freezes (not crashes). Everything is still on screen but frozen - no input etc.

Perhaps the Mail or Message apps have not released control back to my app? Is there a way using Instruments to analyze what's going on?


I am getting a leak from this part from NSArray as the offenders

- (void)postToFacebook:(UITapGestureRecognizer *)sender
NSString *postText = @"Testing";
UIImage *imageToPost = [self captureTheScreenImage];
NSArray *postItems = @[postText, imageToPost];

UIActivityViewController *activityPostVC = [[UIActivityViewController alloc]initWithActivityItems:postItems applicationActivities:nil];

NSArray *excludedItems = @[UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll, UIActivityTypeMail, UIActivityTypeMessage];

[activityPostVC setExcludedActivityTypes:excludedItems];

[self presentViewController:activityPostVC animated:YES completion:nil];


Answer Source

Yes, there is a way, like you mentioned, using Instruments. But If I were to foreshadow your results, I'd say you might want to do network calls on a non-UI thread, somewhere in the background so that your UI thread can do its thang while your app talks to Twitter or Facebook.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download