iOS-Document Picker

iOS系统,处于App目录下的文件,也可以通过Document Picker选择iCloud中的文件,或者第三方Extensions提供的文件。在工作流中尤其方便,多个App可以协同处理同一个文件。

Prerequisites

想要使用Document Picker,必须先打开iCloud开关,如下图。

iCloud-Setting

这里的(Import)导入和(Export)导出操作只会创建一个文件副本,所以比较简单,而(Open)打开和(Move)移动操作比较复杂,因为可能多个进程同时对其操作,需要小心处理。

The Document Picker Enables Sharing Documents Between Apps

通过Document Picker View Controller可以访问沙盒外的文件,iOS 8.0提供了一个简单的方式iCloud Drive。通过iCloud Drive可以直接获取iCloud中的公共文件以及iCloud中其他app共享的文件。

第三方开发者也可以通过创建Document Provider Extension,来有限制地访问Extension和包含其的App的文件。

Sharing Documents Introduces Added Complexity that Your App Must Handle

Enabling iCloud Drive Support Provides Access to Your Documents

如果想要其他App可以访问自身App在iCloud容器中的文件,需要在info.plist中设置:

1
2
3
4
5
6
7
8
9
10
11
12
<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.com.example.MyApp</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
<key>NSUbiquitousContainerName</key>
<string>MyApp</string>
</dict>
</dict>