1. iOS 导入导出文档
1.1. 导出文档
UIActivityViewController 和 UIDocumentInteractionController 都可以实现。
UIActivityViewController 相比 UIDocumentInteractionController 优势
- 可以配置 excludedActivityTypes 添加额外的自定义服务,它还提供了非常好的原生服务的定制化功能。
 - 自定义UIActivity服务
 
1.2. 从 PC 端 iTunes 导入文档
UIFileSharingEnabled 设为 YES,iTunes 可以访问 NSDocumentDirectory 目录。
获取导入的文档
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];
NSMutableString *filesStr = [NSMutableString stringWithString:@"Documents文件夹中文件的名称: \n"];
1.3. 应用间的文件交换
参考 Uniform Type Identifiers Reference CFBundleDocumentTypes 设置支持的格式,其它 App 调用 UIDocumentInteractionController 或 UIActivityViewController 时就会有 App 的 icon。
- Document Types 已知格式
 - Imported UTIs 添加新的格式
 
1.3.1. Document Types
Additional document type properties
LSHandlerRank
- Owner: 打开一次后会记住 App,下次直接用该 App 打开
 - Alternate
 - Default
 - None: 不会出现在可打开 App 列表
 
CFBundleTypeRole
- Editor
 - Viewer
 - Shell
 - QLGenerator
 - None
 
1.3.2. 打开外部文件
- LSSupportsOpeningDocumentsInPlace
 - UIFileSharingEnabled