【问题标题】:setUbiquitous:itemAtURL:destinationURL:error: does not remove the item from iCloudsetUbiquitous:itemAtURL:destinationURL:error: 不会从 iCloud 中删除项目
【发布时间】:2012-10-29 16:04:15
【问题描述】:

如果我发送消息

[[NSFileManager defaultManager] setUbiquitous:NO
                                    itemAtURL:url
                               destinationURL:iCloudURL
                                        error:&err]

要从 iCloud 中删除一个项目,它实际上并没有删除 Ubiquitous Container 上的文件。这是预期的行为吗?

方法返回NO,错误对象包含

Error Domain=NSCocoaErrorDomain Code=512 "无法进行操作 完全的。 (可可错误 512。)“

用户信息=0x20870970 {NSURL=file://localhost/var/mobile/Applications/168EE8CD-4CDF-49BE-AD88-1DC7DD9CF25F/Documents/test.txt,

NSUnderlyingError=0x20863a00 "操作无法完成。 (LibrarianErrorDomain 错误 2 - 无法禁用未同步的同步 项目。)”}

【问题讨论】:

  • 是否返回YESerr 是否已填充?
  • 刚刚编辑了问题

标签: objective-c cocoa-touch cocoa icloud nsfilemanager


【解决方案1】:

错误很明显。您正在尝试从 iCloud 中删除不在 iCloud 中的项目。当您想使用 setUbiquitous:... 从 iCloud 中删除项目时,项目 URL (itemAtURL:) 应该是 iCloud URL。目标 URL 可以是本地的(但如果 ubiquitous 设置为 NO,则会被忽略)。

【讨论】:

    【解决方案2】:

    将“setubiquitous”参数指定为“no”时,您的destinationURL 需要是本地URL,而不是iCloud 的。您的网址已切换

    【讨论】:

      【解决方案3】:

      要删除 iCloud 上的项目,您可以尝试以下代码:

      NSError *err;
      NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
      [fileCoordinator coordinateWritingItemAtURL:_url
                                          options:NSFileCoordinatorWritingForDeleting
                                            error:&err
                                       byAccessor:^(NSURL* writingURL) {
                                                 NSFileManager* fileManager = [NSFileManager defaultManager];
                                                 [fileManager removeItemAtURL:writingURL error:nil];
                                       }];
      [fileCoordinator autorelease];
      

      祝你好运!

      【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 2011-04-02
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      相关资源
      最近更新 更多