ios - 在 iCloud 中使用预先存在的 NSFileManager 代码

标签 ios objective-c file icloud nsfilemanager

我刚刚在我的 iOS 应用程序中编写了几百行用于保存文件、打开文件和删除文件的代码……然后我意识到我可能应该探索 iCloud 并在编写代码时集成它。

有没有办法将 iCloud 集成到预先存在的文档结构中,类等? 还是我必须从头开始重写我的大部分代码?

此外,无论哪种方式,是否有任何 iCloud 项目 (similar to this one) 可以让我轻松集成 iCloud Document Sync?

只是我正在使用的一些代码的快速示例:

//Begin saving file
NSLog(@"Began Saving File");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:filetitle];

//Get the user's keyword preference
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"completeFile"];

[[NSString stringWithFormat:@"Message:%@", MessageText] writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];

编辑:我在 GitHub 上创建了一个名为 iCloud Document Sync 的项目这使开发人员可以轻松地将 iCloud 与其基于文档的 iOS 应用程序集成。问题是它并没有真正遵循普通 iCloud 文件所经历的设计/结构:
  • 文件复制到 iCloud
  • 然后在本地编辑文件并将更改上传到 iCloud
  • 不知何故,我们必须检查本地文件是否比 iCloud
  • 中的文件旧。

    我的 GitHub 项目在一定程度上解决了这个问题,但我不知道如何 复制 本地目录中的文件,而不是移动它们。我遇到的第二个问题是弄清楚如何编辑该本地文件并推送更改 - 当我尝试将更改推送到云中的文件时,我收到一个 Cocoa 错误,上面写着:

    Cocoa Error 516: File Exists



    最后,我不确定如何检查本地文件和云文件之间的差异/冲突。我认为问题在于代码的设计和流程 - 但是我认为由于场景需要代码的布局。

    编辑:我读了这个 SO question ,这似乎是我要问的一部分,但是我想提供赏金以获得更清晰和更明确的答案。

    最佳答案

    关于ios - 在 iCloud 中使用预先存在的 NSFileManager 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058350/

    相关文章:

    ios - 在 ios 中绘制图像渐变

    ios - 更改方向更改背景失败

    objective-c - 检查 NSArray 中的所有对象是否相同

    string - End_Error 帮助,在 Ada 中使用无界字符串

    ios - 如何增加 UILabel 中文本及其下划线之间的空间?

    ios - 如何使用 GLKView 以较低的分辨率进行绘制?

    objective-c - Cocoa:当我有一个 "id button"变量时如何获取按钮类型

    ios - 扩展 subview 后 UITableView 滚动不够

    file - 如何将URL重定向到主机文件中的另一个URL,而不是将IP重定向到URL?

    c++ - 起始地址无限循环