从2014年5月起将iCloud sync添加到iOS到基于文档的应用程序?

从2014年5月起将iCloud sync添加到iOS到基于文档的应用程序?,ios,ios7,sync,icloud,uimanageddocument,Ios,Ios7,Sync,Icloud,Uimanageddocument,为了进一步了解我的基本知识,我在过去几天里读了很多关于向现有应用程序添加iCloud备份和/或更高级同步功能的文章,该应用程序使用UIManagedDocument获取其核心数据堆栈。我看到一些人提到iOS 7中的更新,这些更新使得2011年和2012年的许多文章(以及苹果自己的文档)(这似乎是大多数文章(通过谷歌搜索发现)中最常见的日期)有些“过时”。一般来说,截至2014年5月,在应用程序中添加iCloud支持的情况如何?答案似乎从“使用UIManagedDoc,我只添加了几行代码”到许多更

为了进一步了解我的基本知识,我在过去几天里读了很多关于向现有应用程序添加iCloud备份和/或更高级同步功能的文章,该应用程序使用UIManagedDocument获取其核心数据堆栈。我看到一些人提到iOS 7中的更新,这些更新使得2011年和2012年的许多文章(以及苹果自己的文档)(这似乎是大多数文章(通过谷歌搜索发现)中最常见的日期)有些“过时”。一般来说,截至2014年5月,在应用程序中添加iCloud支持的情况如何?答案似乎从“使用UIManagedDoc,我只添加了几行代码”到许多更复杂的示例,这些示例利用了更高级的本地和云中数据更改通知

我现在还不清楚的是,当在支持iCloud的设备上添加iCloud基本备份时(很明显,现在包括用于基本测试的模拟器),从哪里开始呢?比如,如果查看基于斯坦福核心数据讲座(见下文)的代码,添加iCloud同步需要哪些步骤?为了简化这一点,iOS 7到底改变了什么

iOS 7的幕后更新真的只需要“几行”代码就能让下面的代码为iCloud的基本支持做好准备吗

我正试图弄清楚,到目前为止,在使用UIManagedDocument的应用程序中实现基本iCloud支持的最佳做法是什么。下面的代码已经在Documents目录中创建了一个文档并使用了该文档,需要对其进行哪些更改

苹果自己的文档对我帮助不大。我想我只需要看看我已经理解的代码的补充,就可以得到一个参考点

来自斯坦福大学赫加蒂讲座:

-(void)useDemoDocument
{
    NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    url = [url URLByAppendingPathComponent:@"Demo Document"];

    UIManagedDocument *document = [[UIManagedDocument alloc] initWithFileURL:url];

    if (![[NSFileManager defaultManager] fileExistsAtPath:[url path]]) {
        //create
        [ document saveToURL:url
            forSaveOperation:UIDocumentSaveForCreating
           completionHandler:^(BOOL success) {
               if (success) {
                   self.context = document.managedObjectContext;
               }
           }];
    } else if (document.documentState == UIDocumentStateClosed){
        //open
        [document openWithCompletionHandler:^(BOOL success) {
            if (success) {
                self.context = document.managedObjectContext;
                //[self refresh];
            }
        }];
    } else {
        //try to use it
        self.context = document.managedObjectContext;
    }
}

它仍然很复杂,充满了陷阱。我这里有一些示例应用程序和对一些选项的解释,实际上我是通过谷歌看到你的网站的。我把它放在书签里,一直在浏览这些样本,尽管其中大部分内容我都有点不知所措。我需要一段时间来决定如何使其适应上面的代码,因为我的知识水平是基本的。这是一个很好的资源,如果我能够利用这些信息,我可以进一步发表评论。我的建议是远离UIManagedDocument,但也许其他人已经取得了更大的成功。它与OSX上的任何东西都不兼容,这对我来说是个问题。因此,您建议通过在应用程序委托中初始化来获取核心数据堆栈?我是根据斯坦福大学讲座的建议,专门为未来的iCloud集成而加入uimanageddoc的。我现在也在考虑通过Dropbox进行同步。如果你想通过Dropbox进行同步,与Core Data+iCloud集成将不会有帮助。看看我的开源框架,它支持通过iCloud和Dropbox进行核心数据同步,并且已经在使用UIManagedDocument的应用程序中发布。