我是使用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,但是,如果这是唯一的选择,请告诉我。
答案 0 :(得分:0)
使用代码时我也遇到同样的问题
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:filePathURL destinationURL:ubi2 error:&error];
您必须更改下面的代码才能使其正常工作
[[[NSFileManager alloc]init]setUbiquitous:YES itemAtURL:filePathURL destinationURL:ubi2 error:nil];
此代码用于将文件移动到icloud,您还应该更改要移动的文件的名称。它应该不一样。