1

我是使用 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,但是,如果这是唯一的选择,请告诉我。

4

1 回答 1

0

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

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

您必须更改如下代码才能正常工作

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

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

于 2013-07-30T05:38:44.110 回答