2

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

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

此外,无论哪种方式,是否有任何 iCloud 项目(类似于这个)可以让我轻松集成 iCloud 文档同步?


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

//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 文件所经历的设计/结构:

  1. 文件复制到 iCloud
  2. 然后在本地编辑文件并将更改上传到 iCloud
  3. 不知何故,我们必须检查本地文件是否比 iCloud 中的文件旧

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

Cocoa 错误 516:文件存在

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


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

4

1 回答 1

0

这可能会有所帮助。这就是苹果在他们的文档中描述的方式。https://developer.apple.com/library/mac/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/DesigningForDocumentsIniCloud.html#//apple_ref/doc/uid/TP40012094-CH2-SW1

于 2013-03-04T08:52:55.333 回答