EverBox开发笔记-2-iCloud-KeyValueStore
下午抽了点时间,测试了下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相关推荐
- EverBox开发笔记-1
我负责存储部分,要先思考两个存储问题:数据本地存储方案,和数据云端存储方案. 由于这是个UGC App,内容需要在本地存储以提供流畅的操作体验,还要同步到云端以保证数据不丢失,还要能在用户的多个设备之 ...
- EverBox开发笔记-3-iCloud Document Storage
原想将数据存到SQLite数据库中(沙盒中的文件),再将SQLite数据库文件上传到iCloud,于是需要学习iCloud存储文件对象的方法. 一,能直接将SQLite文件保存到iCloud吗? 答案 ...
- EverBox开发笔记-4-如何使用Core Data
在这里有篇新手教程,教你怎么在iOS中使用Core Data. 教程写的不错,非常详细, 通过这个例子,可以看到在iOS下使用Core Data存储结构化数据是多么容易,Core Data隐藏了数据存 ...
- iphone开发笔记和技巧总结
在iphone程序中实现截屏的一种方法: //导入头文件 #importQuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片imageUIGrap ...
- 运维开发笔记整理-前后端分离
运维开发笔记整理-前后端分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流 ...
- iOS开发笔记-两种单例模式的写法
iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...
- 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
本系列文章由zhmxy555编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7405479 作者:毛星云 邮箱: happyl ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云 邮箱: happylifemxy@163.com 期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
最新文章
- 分析与设计(AD)简介(3)
- Spark2.1.0之内置RPC框架
- mysql对执行结果进行html格式的输出?输出html格式?
- 用户NT AUTHORITYNETWORK SERVICE登录失败解决方法
- 从零售商加速向零售平台进化,每日优鲜已经成为“生鲜电商第一股”
- OS X Mountain Lion上的多个Java版本
- IMAXB6充电器使用教程
- SQLserver添加主键
- c语言数组用户注册登入管理系统_[内附完整源码和文档] 基于JAVA的干部档案管理系统...
- tampermonkey 下载
- 整流3-前级三相PWM整流器软件层面理解
- matlab电流测量接法,matlab电压电流测量模块的使用
- 2016美国计算机研究生,2016年美国计算机工程专业研究生排名(转载)
- 漏洞挖掘——实验9 SQL Injection Attack Lab
- Android 高德地图Marker和Marker点击事件处理
- Houdini 导出粒子替代物至Maya渲染
- 红米note1s android5,[FIRE]红米Note 1S MIUI6 5.5.29精简、绝对纯净、
- 错排——没有不动点排列 通俗易懂!!!
- hamming code/汉明编码
- 图像识别购物超方便!