gpt4 book ai didi

ios - iCloud 和鞋盒应用程序 : How to atomically sync a file package?

转载 作者:行者123 更新时间:2023-11-29 10:49:47 25 4
gpt4 key购买 nike

我有一个“鞋盒”Mac 应用程序,带有一个基于 iOS 对应的 UIDocument

我正在尝试找出通过 iCloud 在 Mac 和 iOS 之间同步数据的最佳策略。

我不能在 Mac 应用程序中采用 NSDocument(它是一个鞋盒应用程序,没有类似于 iTunes 中的专辑的单独文档的概念)。

我的 Mac 应用计划是这样的:

  • 将每个项目作为文件包存储在“数据”目录中
  • 使用文件包装器编写包
  • 使用文件协调来同步读/写操作(在文件包的“根”文件夹上同步)

对于 iOS 应用:

  • 加载Mac app在data目录下创建的文件包作为UIDocument
  • 依靠 UIDocument 进行更改通知/文件协调
  • 我不会使用 Documents 文件夹,因为我不想让用户看到“设置”应用中的文档

我的问题:

  • 如何确保我的 Mac 文件包以一致的方式同步到 iOS? (即,对包中多个文件的更改被自动视为一次更改)
  • 在目录上设置“文件包”位是否足够(我实际上是通过导出 UTI 来完成的)?
  • 有没有办法实际模拟/测试它?

最佳答案

在这里,您将进入一个 hell 般的世界。在机器之间同步文件包没有 Elixir ——iCloud 同步掩盖了太多 Unresolved 问题。当你的包中一半的数据文件写完了,然后用户关闭了她的电脑,剩下的不写了,会发生什么?如果从网络上正确读取了主索引文件,但在加载它引用的任何数据文件之前网络发生故障怎么办?

据我所知,iCloud 不会采取任何措施来处理此类问题。

但是,也就是说,即使是鞋盒应用程序,我也会(并且确实)使用 NSDocument。让它做你想做的事并不需要太多工作,而且你可以免费得到这么多东西。比如,只需从主菜单中删除“打开”和“保存”菜单项,然后告诉 NSDocumentController 在应用程序启动时打开您的数据文件。这就是我们所做的。

关于ios - iCloud 和鞋盒应用程序 : How to atomically sync a file package?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com