下午抽了点时间,测试了下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中将消息处理函数和触摸消息连接起来,好在有高人指出了这个错误:)

转载于:https://www.cnblogs.com/tara/archive/2012/06/25/2562837.html

EverBox开发笔记-2-iCloud-KeyValueStore相关推荐

  1. EverBox开发笔记-1

    我负责存储部分,要先思考两个存储问题:数据本地存储方案,和数据云端存储方案. 由于这是个UGC App,内容需要在本地存储以提供流畅的操作体验,还要同步到云端以保证数据不丢失,还要能在用户的多个设备之 ...

  2. EverBox开发笔记-3-iCloud Document Storage

    原想将数据存到SQLite数据库中(沙盒中的文件),再将SQLite数据库文件上传到iCloud,于是需要学习iCloud存储文件对象的方法. 一,能直接将SQLite文件保存到iCloud吗? 答案 ...

  3. EverBox开发笔记-4-如何使用Core Data

    在这里有篇新手教程,教你怎么在iOS中使用Core Data. 教程写的不错,非常详细, 通过这个例子,可以看到在iOS下使用Core Data存储结构化数据是多么容易,Core Data隐藏了数据存 ...

  4. iphone开发笔记和技巧总结

    在iphone程序中实现截屏的一种方法: //导入头文件   #importQuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片imageUIGrap ...

  5. 运维开发笔记整理-前后端分离

    运维开发笔记整理-前后端分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流 ...

  6. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  7. 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

    本系列文章由zhmxy555编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7405479 作者:毛星云    邮箱: happyl ...

  8. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  9. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

最新文章

  1. 分析与设计(AD)简介(3)
  2. Spark2.1.0之内置RPC框架
  3. mysql对执行结果进行html格式的输出?输出html格式?
  4. 用户NT AUTHORITYNETWORK SERVICE登录失败解决方法
  5. 从零售商加速向零售平台进化,每日优鲜已经成为“生鲜电商第一股”
  6. OS X Mountain Lion上的多个Java版本
  7. IMAXB6充电器使用教程
  8. SQLserver添加主键
  9. c语言数组用户注册登入管理系统_[内附完整源码和文档] 基于JAVA的干部档案管理系统...
  10. tampermonkey 下载
  11. 整流3-前级三相PWM整流器软件层面理解
  12. matlab电流测量接法,matlab电压电流测量模块的使用
  13. 2016美国计算机研究生,2016年美国计算机工程专业研究生排名(转载)
  14. 漏洞挖掘——实验9 SQL Injection Attack Lab
  15. Android 高德地图Marker和Marker点击事件处理
  16. Houdini 导出粒子替代物至Maya渲染
  17. 红米note1s android5,[FIRE]红米Note 1S MIUI6 5.5.29精简、绝对纯净、
  18. 错排——没有不动点排列 通俗易懂!!!
  19. hamming code/汉明编码
  20. 图像识别购物超方便!

热门文章

  1. 怀旧服默认服务器文件,《魔兽世界》怀旧服:这些服务器名称的小知识你得知道...
  2. 思岚科技激光雷达在室外使用效果如何?
  3. linux yum使用管理详细使用转载的
  4. minecraft服务器搭建教程_Minecraft我的世界服务端搭建教程,附优化启动参数
  5. 各种Excel VBA的命令
  6. Reac生命周期钩子之getSnapshotBeforeUpdate
  7. Win10怎么通过设置组策略编辑器锁定IE主页
  8. 位运算的一些技巧总结
  9. 自签名证书和CA机构颁发的证书的区别
  10. 个人记账软件 共享及有条件开源