将文件移动/复制到iCloud

时间:2012-11-08 05:01:31

标签: objective-c icloud

我是使用Objective-C的初学者。我使用以下代码将文件移动到iCloud,但它给出了The operation could not be completed. The file exists.

的错误
//store the file locally in document folder 
NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath  = [docPaths objectAtIndex:0];
filePath = [filePath stringByAppendingString:@"/"];
filePath = [filePath stringByAppendingString:fileName];

NSString *writeError = nil;
NSData * fileData = [NSPropertyListSerialization dataFromPropertyList:dataDic format:NSPropertyListXMLFormat_v1_0 errorDescription:&writeError];

if ([fileData writeToFile:filePath atomically:YES]) {
    NSLog(@"Server file is stored locally");
}else {
    NSLog(@"%@", writeError);
}


 // store the file in iCloud folder

NSURL *ubiquitousURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
NSString *tmpubiquitousURL = ubiquitousURL.absoluteString;
tmpubiquitousURL = [tmpubiquitousURL stringByAppendingString:fileName];
NSURL *ubi2 = [[NSURL alloc] initWithString:tmpubiquitousURL];

[[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:filePathURL destinationURL:ubi2 error:&error];

我使用以下内容从iCloud中删除文件,但它出现Cannot disable syncing on an un-synced file.

错误
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:filePathURL destinationURL:ubi2 error:&error];

我在我的应用代表中检查了iCloud的可用性,并且它可用。该文件是一个XML文件(.plist),我有一个存储在NSDocumentDirectory中的本地副本。

总的来说,我想在iCloud中同步该文件,以便可以使用我的应用程序在所有设备上访问它。我一直在为此奋斗2天,所以如果你能帮我解决问题,我会很感激。

注意:我宁愿不使用UIDocument,但是,如果这是唯一的选择,请告诉我。

1 个答案:

答案 0 :(得分:0)

使用代码时我也遇到同样的问题

[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:filePathURL destinationURL:ubi2 error:&error];

您必须更改下面的代码才能使其正常工作

  [[[NSFileManager alloc]init]setUbiquitous:YES itemAtURL:filePathURL destinationURL:ubi2 error:nil];

此代码用于将文件移动到icloud,您还应该更改要移动的文件的名称。它应该不一样。