iCloud键值数据存储设计
iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击“设置iCloud数据”按钮,将控件状态保存到iCloud服务器。右图是设备2画面,过几秒钟后设备2收到变更通知。
配置Xcode工程
使用Xcode创建一个iOS工程,工程创建好之后,选择TAGETS→MyNotes→Summary→Entitlements,我们可以在这里配置授权信息。
然后我们还需要应用设置代码签名标识,代码签名标识需要选择这个配置概要文件的。选择TAGETS→MyNotes→CodeSigningIdentity
设置完成之后可以开始编码工作了。
代码实现
首先是需要注册NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知,并同步数据,代码参考ViewController.m的viewDidLoad方法:
- (void)viewDidLoad
{
[super viewDidLoad];
NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore]; ①
[[NSNotificationCenter defaultCenter] ②
addObserverForName:
NSUbiquitousKeyValueStoreDidChangeExternallyNotification
object:store
queue:nil
usingBlock:^(NSNotification *note) { ③
//更新控件状态
[_switchSound setOn:[store boolForKey:UbiquitousSoundKey]]; ④
[_switchMusic setOn:[store boolForKey:UbiquitousMusicKey]]; ⑤
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@”iCloud变更通知”
message:@”你的iCloud存储数据已经变更”
delegate:nil
cancelButtonTitle:@”Ok”
otherButtonTitles:nil, nil];
[alert show];
}];
[store synchronize]; ⑥
//初始化控件状态
[_switchSound setOn:[store boolForKey:UbiquitousSoundKey]]; ⑦
[_switchMusic setOn:[store boolForKey:UbiquitousMusicKey]]; ⑧
}
保存数据到iCloud存储,代码ViewController.m的setData:方法:
- (IBAction)setData:(id)sender {
NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
//存储到iCloud
[store setBool:_switchSound.isOn forKey:UbiquitousSoundKey];
[store setBool:_switchMusic.isOn forKey:UbiquitousMusicKey];
[store synchronize];
}
因为是BOOL值所以存储使用的方法是setBool:forKey:。最后不要忘记解除注册的通知,在视图控制器中解除通知可以在didReceiveMemoryWarning方法中完成:
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
由于本应用中只有一个通知,因此可以使用[[NSNotificationCenterdefaultCenter]removeObserver:self]语句解除全部通知,而不影响其它的通知,如果还有其它的通知我们要慎用这个语句。
编程完成代码我们可以测试一下,这个应用的测试很麻烦,需要两个真实设备而不能在模拟器上进行。运行两个设备,点击其中一个设备的“设置iCloud数据”按钮,过几秒钟后另外一个设备收到变更通知。
出自《iOS网络编程与云端应用最佳实践》作者:关东升 新浪微博@tony_关东升
分享到:
相关推荐
IOS应用源码之【应用】-iCloud代码示例.rar
前两年IOS应用源码-主要是用于毕业设计学习的。
藏经阁-Intercepting-iCloud-Keychain
Laravel开发-icloud 关于云上传
【应用】★★★★-iCloud代码示例.zipIOS应用例子源码下载【应用】★★★★-iCloud代码示例.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
《iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、WebService、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、以及社交网络...
react-native-icloud-sync 用于与icloud同步的React-native包装器。 将其添加到您的项目 运行npm install react-native-icloud-sync --save 在XCode中打开您的项目,右键单击Libraries ,然后单击Add Files to ...
传智播客iOS6免费公开课程-调用icloud 传智播客iOS6免费公开课程-调用icloud
《清华开发者书库:iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、Web Service、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook...
iOS 禁止同步到iCloud的的类别,可以对指定的目录文件设置为禁止同步
nosync-icloud 避免 iCloud 同步 node_modules(Avoid syncing node_modules to iCloud)。 安装 npm i -g nosync-icloud # or yarn global add nosync-icloud 我要解决什么痛点? 很多开发者都在使用 Mac ...
基础 -iCloud键值BuildInfo,时区,摄像头许可,音频会话, 游戏套件 -身份验证,游戏中心用户界面,排行榜,成就,保存游戏。 商店工具包 -初始化,购买流程,收货确认,商店评论控制器。 UIKit-日期时间选择器...
iOS网络编程与云端应用最佳实践随书代码,系统论述了iOS 6网络编程和云端应用开发技术,介绍了苹果网络、数据交换格式、Web Service、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、社交网络...
Lesson 24 Introduction to ICloud Storage Lesson 25 Introduction to CloudKit Lesson 26 Introduction to Core Data Lesson 27 Consuming RESTFUL JSON Web Services Section IV Beyond the Basics Lesson 28 ...
CoreData 同步在ICloud Demo ID 需要自己改
Swift-iCloud-同步一个让我可以使用 iCloud 和 Swift 在不同设备之间同步数据的学习项目演示添加新任务任务自动同步到另一台设备
iOS.5.Core.Frameworks.Develop.and.Design.Working.with.graphics.location.iCloud.and.more.2011.pdf
il.dizionario.onesto-icloud.com
icloud-照片应用程序 管理 iCloud 上的照片 安装 由于这在 npm 上尚不可用,您可以按照以下步骤安装该模块: 克隆这个仓库 $ git clone https://github.com/alexlincoln/icloud-photos-app.git 克隆icloud-session...
21.PortRelay -> TCP数据转发 用法: Aio.exe -PortRelay 本地绑定端口 转发至的IP 转发至端口 例子: Aio.exe -PortRelay 3389 211.12.12.12 3389 帮助: Aio.exe -PortRelay 22.Reboot -> 重启系统 用法: Aio.exe -...