自2014年5月起,将iCloud同步添加到iOS到基于文档的应用程序?

时间:2014-05-10 18:27:55

标签: ios ios7 sync icloud uimanageddocument

为了进一步深入学习,过去几天我已经阅读了很多关于将iCloud备份和/或更高级的同步功能添加到使用UIManagedDocument来获取其核心数据堆栈的现有应用程序。我看到有些人指的是iOS 7中的更新,这些更新包含了2011年和2012年的许多文章(以及Apple自己的文档)(这似乎是大多数文章中最常见的日期[通过谷歌搜索发现]有点“过时”。总的来说,截至2014年5月,在应用程序中添加iCloud支持的位置是什么?答案似乎从“使用UIManagedDoc我只添加了几行代码”到更多涉及的示例,这些示例利用本地和云中数据更改的更高级通知。

我还无法解决的问题是,在iCloud启用的设备上添加iCloud基本备份(现在包括用于基本测试的模拟器,显然),从现在开始,在哪里开始?比方说,如果根据斯坦福核心数据讲座(见下文)查看代码,添加iCloud同步所需的步骤是什么? iOS 7实际上改变了什么来简化这个?

对iOS 7进行引擎盖下更新是否真的只需要“几行”代码就可以获得以下代码,以便为基本的iCloud支持做好准备?

我正试图了解最新的做法,就像现在一样,在使用UIManagedDocument的应用程序中接近基本的iCloud支持。下面的代码有哪些更改,它已经在Documents目录中创建了一个doc并使用了那个单个文档,需要做什么?

Apple自己的文档对我没什么帮助。我想我只需要看一下我已经理解的代码,以便为我提供一个参考点。

来自Hegarty的讲座,斯坦福大学:

-(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;
    }
}

0 个答案:

没有答案