目前UIActivityViewController- LaunchServices:invalidationHandler调用

我已经在这里和这里看到了相关的问题,并且我已经实现了build议的解决scheme,但是无济于事。

我有一个UIBoolButtonItem UIToolbar,与发送操作连接到btnTBAction_touch:

在ViewController的类头中我有:

@property (nonatomic, strong) UIActivityViewController *activityViewController; 

类实现中的相关方法:

 - (IBAction)btnTBAction_touch:(id)sender { NSString *string = @"Some string"; NSURL *url = [[NSURL alloc] initWithString:@"http://www.google.com"]; UIImage *image = [UIImage imageNamed:@"default.png"]; self.activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[string, url, image] applicationActivities:nil]; if ([self.activityViewController respondsToSelector:@selector(popoverPresentationController)]) { UIPopoverPresentationController *presentationController = [self.activityViewController popoverPresentationController]; presentationController.sourceView = sender; } [self presentViewController:self.activityViewController animated:YES completion:nil]; } 

当我触摸调用上述方法的button时,在debugging模式下在物理设备上运行时,在debugging控制台中显示以下信息

 2014-09-19 09:43:31.635 TestApp[1878:237873] LaunchServices: invalidationHandler called 2014-09-19 09:43:31.644 TestApp[1878:237814] LaunchServices: invalidationHandler called 

然而,不像相关的问题,我的应用程序不会崩溃,当这种情况发生时,应用程序继续工作正常,并UIActivityViewController呈现正确…但我宁愿修复这个错误,而不是说它足够好。

此外,我已经尝试了使用这些行的上述方法的几个排列组合:

 presentationController.sourceView = self.view; presentationController.sourceRect = self.view.frame; 

这些都没有帮助解决这个问题。

  • 我正在使用Xcode v6.0.1
  • 我的应用程序的部署目标是7.0的iPhone只
  • 在运行iOS 8.0的iPhone 5s上testing
  • 代码全在Objective-C中

如果你的开发目标设备是iPhone,你不应该担心这个消息。 看起来这是来自苹果的错误。 看看开发者论坛:“那个日志消息不代表你的错误。”

请参阅: https : //devforums.apple.com/message/1049415#1049415 (可能需要您login)

这里的问题类似。

我正在使用UIDocumentInteractionController,而不是UIActivityViewController,所以没有sourceView或sourceRect来处理。

在标题中:

 UIDocumentInteractionController *docInteractionController; 

在他们中:

 self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:fileURL]; self.docInteractionController.delegate = self; self.docInteractionController.UTI = @"com.adobe.pdf"; //UIBarButtonItem *element is an element in my toolbar [self.docInteractionController presentOptionsMenuFromBarButtonItem:element animated:YES]; 

在控制台上,我看到以下警告:

  Unknown activity items supplied: ( { "com.adobe.pdf" = <25504446 (and then what looks like the rest of the pdf I tried to open)>; }, "<UIPrintInfo: 0x17b47ca0>" ) 2014-10-14 21:11:21.661 iFly[288:29569] LaunchServices: invalidationHandler called 

而在我的应用程序的官方App Store版本中,应用程序崩溃。 当我在我的iPad上编译和运行时,它只是给出警告。

我可以通过使用presentOpenInMenuFromBarButtonItem而不是用于UIDocumentInteractionController调用的presentOptionsMenuFromBarButtonItem来解决“未知活动项目”提供的部分警告,但“LaunchServices”警告仍然会发生。

iPad版本8.0.2。 Xcode版本6.0.1,部署目标6.0(也testing了部署目标8.0)。 所有的目标-c。

这是为我工作。 没有错误。 我不得不摆脱名为“isAvailableForServiceType:”的if语句。 希望对你有帮助!

  SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [tweetSheet setInitialText:@"Great fun to learn iOS programming at appcoda.com!"]; [self presentViewController:tweetSheet animated:YES completion:nil]; if ([tweetSheet respondsToSelector:@selector(popoverPresentationController)]) { // iOS 8+ UIPopoverPresentationController *presentationController = [tweetSheet popoverPresentationController]; presentationController.sourceView = sender; // if button or change to self.view. }