【问题标题】:howto resolve UIDocumentStateSavingError and UIDocumentStateClosed如何解决 UIDocumentStateSavingError 和 UIDocumentState Closed
【发布时间】:2012-09-05 13:59:48
【问题描述】:

我有一个 iPhone-iCloud 应用程序。现在一个文档的状态为UIDocumentStateSavingErrorUIDocumentStateClosed。我可以在developers.icloud.com 上看到状态为“文件上传待处理”的文件。但我现在不知道该怎么办

当我尝试使用代码删除文件时:

NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[fileCoordinator coordinateWritingItemAtURL:fileURL options:NSFileCoordinatorWritingForDeleting error:nil byAccessor:^(NSURL* writingURL) {
    NSFileManager* fileManager = [[NSFileManager alloc] init];
    [fileManager removeItemAtURL:writingURL error:nil];
}];

文件还在。我试图删除所有设备上的应用程序,但没有任何改变。如何删除此文件或解决问题?

【问题讨论】:

    标签: objective-c ios icloud


    【解决方案1】:

    很久以前,但仍未得到答复,所以如果您的问题仍然存在:

    对我来说,可以在文件上添加 [fileManager setUbiquitous:NO...] 的 [fileManager removeItemAtURL:...],然后让 fileManager 删除本地副本。

    注意使用文件管理器操作的 NSError 和布尔结果处理,以确保它确实有效。因此,如果您返回一个 NSError,您可以看到它失败的原因。这总是很好的做法。

    我偶然发现了您的问题,因为在重新创建此类已删除文件后,即使删除和创建之间有几个小时,我也会收到消息“文件上传正在等待”。

    【讨论】:

    • 警告任何阅读此内容的人:如果您在 [fileManager setUbiquitous:NO...] 前面加上 [fileManager removeItemAtURL:...],您首先会从 iCloud 中删除该文档,该文档会从您的所有设备中删除,然后删除您下载的副本——所以该文件将永远丢失!如果你不想要这个结果,你可以使用[fileManager evictUbiquitousItemAtURL:],它会重新下载本地副本。
    • 是的,你是对的 Anton - 但这正是这个问题的所有者想要的结果:从任何地方删除文件。至少我是这样理解他的问题的……
    猜你喜欢
    • 2019-11-04
    • 1970-01-01
    • 2012-04-18
    • 2021-09-19
    • 2011-12-24
    • 1970-01-01
    • 2017-07-20
    • 2011-09-11
    • 2019-10-29
    相关资源
    最近更新 更多