目前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. }