Ios 使用NSFileManager API在iCloud中操作文件安全吗?

Ios 使用NSFileManager API在iCloud中操作文件安全吗?,ios,cocoa-touch,icloud,nsfilemanager,Ios,Cocoa Touch,Icloud,Nsfilemanager,只需在ubiquity容器中创建以下文件,即可将文件同步到iCloud: NSFileManager *fileManager = [NSFileManager defaultManager]; NSURL *containerURL = [fileManager URLForUbiquityContainerIdentifier:nil]; NSURL *dirURL = [containerURL URLByAppendingPathComponent:@"files" isDirector

只需在ubiquity容器中创建以下文件,即可将文件同步到iCloud:

NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *containerURL = [fileManager URLForUbiquityContainerIdentifier:nil];
NSURL *dirURL = [containerURL URLByAppendingPathComponent:@"files" isDirectory:YES];

NSError *error;
[fileManager createDirectoryAtURL:dirURL withIntermediateDirectories:NO attributes:nil error:&error];

NSURL *icloudURL = [dirURL URLByAppendingPathComponent:@"somefile.txt"];
[fileManager createFileAtPath:[icloudURL path] contents:someData attributes:nil];
这是一种将文件放入iCloud的简单而直接的方法,但我在文档中找不到这样的例子,也没有提示允许使用这样的API。提出以下问题: 这安全吗?Apple API文档是否允许这样做?它有任何已知问题吗?

备注:

  • 我正在寻找一种最简单的方法来管理iCloud中大量不相关的文件
  • 给定的方法比setUbiouse:ItemAttribute:destinationURL:error:-方法更简单,因为它允许从NSData临时持久化文件,而无需在应用程序沙盒中创建临时文件,并覆盖现有文件,而无需额外检查这种情况
  • setUbiquitos API文档说“在调用此方法之前,您的应用程序必须配置活动文件演示器对象以监视指定的文件或目录。”《iCloud设计指南》说“始终使用文件协调器访问iCloud文件或文件包。”。这让我担心给定的代码是否有问题
  • 当需要维护捆绑目录中许多文件f.e.的一致性时,我认为需要FileCoordinator/FilePresenter。但是,如果您只想在云中管理一堆独立的文件,那么这看起来开销太大了。特别是考虑到这个API的性质
  • 我考虑过使用UIDocument:考虑到类的一次加载/存储所有内容的方法,将文件夹视为文档并不合适。将每个文件视为一个文档感觉不错,但相当麻烦

    • 有一件事我确信,使用iCloud并不简单

      有太多的例外,我认为它们从未发生过,但它们仍然发生过。(例如:有时iCloud向我的应用程序发送了一个
      NSConcreteData
      对象,但我的应用程序使用了
      NSFileWrapper
      ;有时我的文件变成了文件夹,几分钟后又返回一个文件)

      有很多方法可以访问iCloud。这是一个简单的方法:

      记住在使用iCloud时一定要小心(任何事情都可能发生)

      祝你好运