如何限制 UIDocumentPickerViewController 导入到 .archive 文件? (NSKeyedArchiver)

How to restrict UIDocumentPickerViewController import to .archive files? (NSKeyedArchiver)

在将数据保存为存档 (NSKeyedArchiver) 的应用程序中,我允许用户导出 .archive 文件以进行备份。然后用户可以重新导入这些文件以检索备份数据。

有没有办法限制 UIDocumentPickerViewController 只允许导入那些 .archive 文件?我尝试使用 kUTTypeArchive 作为唯一允许的类型,但它似乎不是同一种 "archive",所以我使用了 "public.item" 而我寻求解决方案。

运行 文件上的 mdls 命令给出此文件类型:dyn.ah62d4rv4ge80c6xdrby1q3k

PS:如果导出和导入 .archive 文件听起来很糟糕,我很想知道为什么!

您使用的“.archive”文件扩展名不是标准的,它是您选择的任意文件扩展名。

所以您的应用应该定义自己的自定义文件扩展名和 UTI 来表示您的存档文件。该文件是使用 NSKeyedArchiver 创建的这一事实与用户无关。

在导出的 UTI 部分下定义您的自定义 UTI 和文件扩展名。然后将其也添加到“文档类型”部分。

然后将您的自定义 UTI 与 UIDocumentPickerViewController 结合使用,这样只有您的应用中带有您应用的自定义扩展名的文件才可选择。