当我尝试关闭UIDocument文件的iCloud同步时,我遇到了错误。想知道是否有其他人遇到过这种情况。这是场景:
我在应用程序沙箱中本地创建一个UIDocument文件,然后进行以下调用以开始将文件与iCloud同步:
[[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:localPathURL destinationURL:cloudPathURL error:&error];
一切都在游动。
现在我想停止iCloud同步这个文件。
我首先通过调用以下内容确保该文件至少与iCloud同步:
- (BOOL) isDataFileSyncedWithCloud
{
if (![self isICloudSupported] || ![self isUsingICloudForFiles])
return NO;
NSURL* file = [self getFileURLToCloudDatafile];
NSNumber* isInCloudNum = nil;
if ([file getResourceValue:&isInCloudNum forKey:NSURLIsUbiquitousItemKey error:nil])
{
// If the item is in iCloud, see if it is downloaded and uploaded.
if ([isInCloudNum boolValue])
{
NSNumber* isDownloadedNum = nil;
if ([file getResourceValue:&isDownloadedNum forKey:NSURLUbiquitousItemIsDownloadedKey error:nil])
{
NSNumber* isUploadedNum = nil;
if ([file getResourceValue:&isUploadedNum forKey:NSURLUbiquitousItemIsUploadedKey error:nil])
{
return ([isDownloadedNum boolValue] && [isUploadedNum boolValue]);
}
}
}
}
return NO;
}
以上返回YES,表示文件已同步(或者我认为......)
所以,现在我继续拨打下面的电话,停止iCloud同步这个文件:
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:localPathURL destinationURL:cloudPathURL error:&error];
我收到以下错误:“操作无法完成。(LibrarianErrorDomain错误2 - 无法禁用未同步项目的同步。”“
知道为什么会出现这种错误以及如何摆脱它?我原以为我的文件完全同步了......
提前致谢!
答案 0 :(得分:2)
我明白了。要禁用iCloud同步,我不小心打电话给:
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:localPathURL destinationURL:cloudPathURL error:&error];
而不是
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:cloudPathURL destinationURL:localPathURL error:&error];