首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iCloud文件版本和神秘文件

iCloud文件版本和神秘文件
EN

Stack Overflow用户
提问于 2015-10-16 06:56:23
回答 1查看 102关注 0票数 1

我一直在尝试对一个大型应用程序进行改造,使其能够将文件存储在iCloud中。该应用程序并不是真正的“基于文档”,但这些文件可能被认为是配置文件或首选文件。

老实说,我并没有遵循苹果iCloud的所有指南。有些确实不符合应用程序的流程。当应用程序启动时,我从ubiquity目录读取文件(使用普通的文件读取),当我写入它们时,我使用普通的文件写入ubiquity目录。当应用程序启动时,我还调用:

代码语言:javascript
复制
[fileManager startDownloadingUbiquitousItemAtURL:url error:&error];

我确实有一个NSFilePresenter在监视ubiquity目录中的变化。它会在文件更改时通知我,但从不会有任何冲突通知。

我的问题是,当我上传一个文件到iCloud时,它会创建一个附加了数字的单独文件。例如。

代码语言:javascript
复制
MyFile.skyset
MyFile 2 .skyset

当多个应用程序正在向ubiquity目录写入MyFile.skyset时,似乎就会出现这些问题。

它们似乎不是冲突的文件版本。如果我使用NSFileVersion查找冲突和其他版本,我只看到MyFile.skyset的一个版本,并且它没有冲突。

我找不到任何文档来解释这个“版本化”文件是什么以及如何处理它。对这里发生的事情有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-17 01:45:03

好吧,我不完全理解“版本”,但是通过改变我更新ubiquity目录中文件的方式,这个问题已经解决了。

我从以下位置更改:

代码语言:javascript
复制
[fileMgr removeItemAtPath:dstPath error:nil];
[fileMgr copyItemAtPath:srcPath toPath:dstPath error:&error];

至:

代码语言:javascript
复制
NSData *data = [NSData dataWithContentsOfFile:srcPath];
[data writeToFile:dstPath atomically:NO];

我认为在将更新的信息复制到ubiquity目录之前删除文件的操作让系统感到困惑。在切换到第二种形式后,我不再看到这个问题。

希望这个答案对其他人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33159884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档