Ios UIDocumentInteractionController显示选项需要很长时间

Ios UIDocumentInteractionController显示选项需要很长时间,ios,objective-c,iphone,ios8,uidocumentinteraction,Ios,Objective C,Iphone,Ios8,Uidocumentinteraction,我曾使用UIDocumentInteractionController共享文件,但在iOS 8 beta 5中,它会在25秒后打开菜单选项,在iOS 7.1中运行良好 我已经核实了我贴在下面的日志 Errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo=0x79bd5ef0 {NSLocalizedDescription=query can

我曾使用UIDocumentInteractionController共享文件,但在iOS 8 beta 5中,它会在25秒后打开菜单选项,在iOS 7.1中运行良好

我已经核实了我贴在下面的日志

Errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo=0x79bd5ef0 {NSLocalizedDescription=query cancelled}
2014-08-27 15:02:05.634 Localwire[82067:1364165] Unknown activity items supplied: (
        {
        "com.microsoft.excel.xls" = <d0cf11e0 a1b11ae1 00000000 00000000 00000000 00000000 3e000300 feff0900 06000000 00000000 00000000 10000000 01000000 00000000 00100000 cb070000 01000000 feffffff 00000000 00000000 62000000 e3000000 64010000 e5010000 66020000 e7020000 68030000 e9030000 6a040000 eb040000 6c050000 ed050000 6e060000 ef060000 70070000 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
发现扩展时遇到的错误:错误域=PlugInKit code=13“查询已取消”UserInfo=0x79bd5ef0{NSLocalizedDescription=query cancelled} 2014-08-27 15:02:05.634 Localwire[82067:1364165]提供的未知活动项:( {
“com.microsoft.excel.xls”=到目前为止,我的解决方法是使用
presentOpenInMenuFromRect
而不是
PresentOpenOptions MenuFromRect
,这将显示较少的项目,但至少不会导致内存问题。在iOS 8 beta 5下,QuickLook选项似乎也有问题,pdf QuickLook也不起作用,除了电影内存问题。

我使用了de>UIActivityViewController,未显示任何问题。此错误仍存在于iOS 8发行版中

因此,我将使用
UIActivityViewController
fix

我使用
TYOpenInAppActivity
UIActivityViewController

NSURL *URL = [NSURL fileURLWithPath:filePath];
TTOpenInAppActivity *openInAppActivity = [[TTOpenInAppActivity alloc] initWithView:self.view andBarButtonItem:barButton];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[URL] applicationActivities:@[openInAppActivity]];
    // Create pop up
    self.activityPopoverController = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
    // Store reference to superview (UIPopoverController) to allow dismissal
    openInAppActivity.superViewController = self.activityPopoverController;
    // Show UIActivityViewController in popup
    [self.activityPopoverController presentPopoverFromRect:((UIButton *)sender).frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
您可以在下面的链接中找到活动控制器


当传入表示
PNG
图像的
NSData
项的字典时,我在使用
UIActivityViewController
时遇到了这个问题

通过在
activityViewControllerPlaceholderItem:
方法中将
NSData
对象转换为
UIImage
实例,我能够加快动作表的呈现速度

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
    NSMutableDictionary *itemPlaceholders = [NSMutableDictionary dictionary];

   [self.items enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSData *obj, BOOL *stop) {
       UIImage *placeholderImage = [UIImage imageWithData:obj scale:.5];
       [itemPlaceholders setObject:placeholderImage forKey:key];
   }];

   return itemPlaceholders;
}

UIActivityViewController在iOS 8中速度非常快。但是,您无法在Instagram、Vintiqu等其他第三方应用程序中打开图像

另外,在iOS 8(也是iOS 8.0.2)中,PresentOpenMemorFromRect确实比PresentOptions MenuFromRect快。 但是,PresentOpenMenuFromRect不显示共享操作

我想在共享视图上为用户提供“保存图像、分配联系人、复制、打印等”。 因此,我目前的解决方法如下所示:(


简单的解决方案:将
UIDocumentInteractionController
保留为视图控制器变量(属性或实例变量),并在
viewDidLoad
中初始化它(在我的例子中,我初始化它时没有任何参数)。如果要打开的文件URL是动态更改的,只需在显示之前更改
UIDocumentInteractionController.URL
属性即可。

我在使用UIActivityViewController显示共享菜单时遇到了相同的问题。您找到了解决方案吗?我在使用UI的一些外来视频格式、pdf和文档文件时也遇到了相同的问题DocumentInteractionController。在我的例子中,我收到一个内存警告,但到目前为止找不到解决方案。很遗憾听说UIActivityViewController也有同样的问题。@user2163024我找不到任何解决方案。我想在共享工作的UiDocument preview controller中打开文档fine@CalinChitu用户2163024而不是它我有e使用了UIActivityViewController,但没有显示任何问题。此错误仍然存在于iOS 8 GM中,因此我将使用UIActivityViewController修复。@Prashanth Thx,我将尝试一下。它对我不起作用……而不是UIActivityController起作用,…。PresentOpenInNufromRect的问题是它不显示空投、邮件和视频iMessage选项…我需要它,因此我使用了UIActivityViewController并将内部活动用作打开活动是否尝试使用UIActivityViewController打开pdf文件?我尝试过。还将自定义页面呈现程序传递给activityItems。这会导致错误“未知活动项”虽然处理properly@KateGeldUIActivityController的问题在于它没有显示所有的第三方应用程序。我对它做了更多的修改以支持第三方应用程序。我已经编辑了我的答案,请检查你的答案是否存在问题。OpenInMenuFromRect没有显示邮件等选项,空投和iMessage。
    if( SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
        [self.udic presentOpenInMenuFromRect:CGRectMake(self.view.frame.size.width/2 - 49/2, self.view.frame.size.height-49, 49, 49)  inView:self.view animated:YES];
    } else {
        [self.udic presentOptionsMenuFromRect:CGRectMake(self.view.frame.size.width/2 - 49/2, self.view.frame.size.height-49, 49, 49)  inView:self.view animated:YES];
    }