• EverBox开发笔记2iCloudKeyValueStore


    下午抽了点时间,测试了下iCloud的Key/Value Store,主要用到NSUbiquitousKeyValueStore:

    获取实例对象:

    NSUbiquitousKeyValueStore * store = [NSUbiquitousKeyValueStore defaultStore];

    保存数据:

    [store setString:@”string to save” forKey:@”keyword”];

    获取数据:

    [store stringForKey:@”keyword”];

    还有个隐含的方法会被系统自动调用,不过假如需要(App启动或退出时)马上跟云端同步数据的话,可以:

    [store synchronize];

    就是这几个简单的令人发指的API,就实现了iCloud Key/Value Storage的基本功能,基本原理是这样子:

    1,存储的内容会先被保存到本地(in-memory)。

    2,iOS会自动的、周期性的,将本地数据保存到云端。

    3,通过侦听store,App可以在云端数据被修改时得到通知来更新数据。

    一开始写测试代码时,从iOS开发者网站上下了《Adopting iCloud Storage – Part 1》,准备跟着视频学习使用iCloud API,结果效率低得惊人,配置“Entitlement”时,更因为视频语焉不详,测试失败,最后还是从这个官方教程找到详细的配置方式。

    解决了配置“Entitlement”的问题后,调整了下测试步骤:

    1,App启动时,调用[store synchronize]向云服务器获取数据,并将数据显示在界面。

    2,在数据显示界面修改数据,并调用[store setString: forKey:]保存数据。

    3,删除App后重新安装,回到步骤1,看能否看到刚才保存的数据。

    测试结果:

    1,App重新启动时,[store stringForKey:]什么也获取不到。

    2,调用[store synchronize]后,过一段时间(尚不知如何度量,网络情况良好大约三秒内),即可获取到已经保存过的内容。

    在这简单的接口里面,不知隐含了多少后台工作,Apple为开发者考虑的实在周到。整个测试花了150分钟左右,其中30分钟修改“Entitlement”配置,30分钟解决一个非常低级的问题——测试界面中,放了个“sync”按钮,用来主动发起跟云端的数据同步,但却忘了在IB中将消息处理函数和触摸消息连接起来,好在有高人指出了这个错误:)

  • 相关阅读:
    IDEA插件和快捷设置
    漫谈虚拟内存
    漫谈进程和线程
    漫谈计算机语言
    初识Python
    数据库物理设计
    漫谈计算机体系
    数据库逻辑设计
    NLP中几种分词库的简单使用(Python)
    ML————朴素贝叶斯原理和SKlearn相关库
  • 原文地址:https://www.cnblogs.com/tara/p/2562837.html
Copyright © 2020-2023  润新知