iOS8:扩展存储提供程序(导入、导出、移动)不工作

iOS8:扩展存储提供程序(导入、导出、移动)不工作,ios,ios8,ios-app-extension,Ios,Ios8,Ios App Extension,我正在开发我的存储提供商,并使用苹果的“NewBox”(其链接已过期)示例代码作为主机应用程序。理想情况下,我希望看到我可以将文件从存储提供商导入(复制)到我的NewBox的沙盒,或者将文件导出/移动到其他应用程序 在NewBox主机应用程序中,当我想要导入文件时,我使用: UIDocumentMenuViewController *vc = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUT

我正在开发我的存储提供商,并使用苹果的“NewBox”(其链接已过期)示例代码作为主机应用程序。理想情况下,我希望看到我可以将文件从存储提供商导入(复制)到我的NewBox的沙盒,或者将文件导出/移动到其他应用程序

在NewBox主机应用程序中,当我想要导入文件时,我使用:

UIDocumentMenuViewController *vc = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeRTF,(NSString *)kUTTypePNG,(NSString *)kUTTypeText,(NSString *)kUTTypePlainText,(NSString *)kUTTypePDF, (NSString *)kUTTypeImage] inMode:UIDocumentPickerModeImport];


拾取文件后,在UIDocumentPickerExtensionViewController中调用:

- (void)pickDocument:(NSURL *)documentURL {
    [self dismissGrantingAccessToURL:documentURL];
}

调用dismissGrantingAccessToURL后,选择器的视图将被取消并返回到主机应用程序,主机应用程序的DidPickDocumentUrl将被调用

但是,“didpickDocumentTurl”接收我选择的原始文件的URL,而不是系统复制到NewBox沙箱的新URL。这也是我们熟悉的出口和搬家情况我是否误解了导入/导出/移动?我认为有关文件(如复制到主机应用程序的沙箱)的此操作是由系统完成的,主机应用程序将获得要访问的文件的新URL

我已经在iOS8 beta4上试过了,这个问题仍然存在


谢谢

documentPicker:didpickdocumentturl:
获取的URL取决于操作:

  • 导入/导出:
    /data/Containers/data/Application/$(AppIDOfAppPresentingUIDocumentPickerViewController)/tmp/DocumentPickerIncoming/File.txt

  • 打开/移动:
    /data/Containers/Shared/AppGroup/$(ExtensionAppGroupID)/File%20Provider%20Storage/File.txt

其中“File.txt”可以是任何文件名或文件路径

在导入的情况下,呈现选择器的应用程序负责将给定URL处的文件移动到永久位置。在打开或移动的情况下,应用程序可能应该保存URL供将来使用(始终在文件协调器中使用)。在导出的情况下,URL通常被忽略


NewBox项目可以从苹果的网站下载

Hey.“DidPickDocumentatur”这个方法对你有用吗?.在我从iCloud中选择文档后,控制甚至都不使用这个方法。.我这里缺少什么?你是说主机应用程序的DidPickDocumentatur?这可能是一个错误,有时它没有调用。我将手动关闭该应用程序,并在正确调用后重试。您能帮助我吗