Objective c 将文件移动/复制到iCloud
我是使用Objective-C的初学者。我使用以下代码将文件移动到iCloud,但它给出了一个错误,Objective c 将文件移动/复制到iCloud,objective-c,icloud,Objective C,Icloud,我是使用Objective-C的初学者。我使用以下代码将文件移动到iCloud,但它给出了一个错误,操作无法完成。该文件已存在。 //store the file locally in document folder NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *filePath = [docPaths objectA
操作无法完成。该文件已存在。
//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中删除该文件,但它给出了一个错误,无法在未同步的文件上禁用同步。
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:filePathURL destinationURL:ubi2 error:&error];
我在我的app delegate中检查了iCloud的可用性,并且它是可用的。该文件是一个XML文件(.plist),我有一个本地副本存储在NSDocumentDirectory
中
总的来说,我希望在iCloud中同步该文件,以便使用我的应用程序的所有设备都可以访问该文件。我已经为此挣扎了两天,如果你能帮我解决这个问题,我将不胜感激
注意:我不想使用UIDocument,但是,如果这是唯一的选项,请告诉我。我在使用代码时也有同样的问题
[[NSFileManager defaultManager] setUbiquitous:NO itemAtURL:filePathURL destinationURL:ubi2 error:&error];
您必须像下面这样更改代码才能正常工作
[[[NSFileManager alloc]init]setUbiquitous:YES itemAtURL:filePathURL destinationURL:ubi2 error:nil];
此代码用于将文件移动到icloud,您还应该更改正在移动的文件的名称。它不应该是相同的