开发者社区> 关东升> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

iOS网络编程-iCloud键值数据存储编程实例

简介: <p><strong>iCloud键值数据存储设计</strong></p> <p>iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击“设置iCloud数据”按钮,将控件状态保存到iCloud服务器。右图是设备2画面,过几秒钟后设备2收到变更通知。</p> <p align="center"> <a href="http://www.iosbook3.com/wp-con
+关注继续查看

iCloud键值数据存储设计

iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击“设置iCloud数据”按钮,将控件状态保存到iCloud服务器。右图是设备2画面,过几秒钟后设备2收到变更通知。

 10

 

配置Xcode工程

使用Xcode创建一个iOS工程,工程创建好之后,选择TAGETS→MyNotes→Summary→Entitlements,我们可以在这里配置授权信息。

11

然后我们还需要应用设置代码签名标识,代码签名标识需要选择这个配置概要文件的。选择TAGETS→MyNotes→Code Signing Identity

12

设置完成之后可以开始编码工作了。

代码实现

首先是需要注册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];

}


由于本应用中只有一个通知,因此可以使用[[NSNotificationCenter defaultCenter] removeObserver:self]语句解除全部通知,而不影响其它的通知,如果还有其它的通知我们要慎用这个语句。

编程完成代码我们可以测试一下,这个应用的测试很麻烦,需要两个真实设备而不能在模拟器上进行。运行两个设备,点击其中一个设备的“设置iCloud数据”按钮,过几秒钟后另外一个设备收到变更通知。

13

出自《iOS网络编程与云端应用最佳实践》作者:关东升 新浪微博@tony_关东升

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
iOS数据持久化之二——归档与设计可存储化的数据模型基类(二)
iOS数据持久化之二——归档与设计可存储化的数据模型基类
0 0
iOS数据持久化之二——归档与设计可存储化的数据模型基类(一)
iOS数据持久化之二——归档与设计可存储化的数据模型基类
0 0
iOS开发:下架App的步骤
首先登陆你的 iTunes Connect
0 0
iOS 福利来了,方便开发的工具库集合(四)
iOS 福利来了,方便开发的工具库集合
0 0
iOS 福利来了,方便开发的工具库集合(三)
iOS 福利来了,方便开发的工具库集合
0 0
iOS 福利来了,方便开发的工具库集合(二)
iOS 福利来了,方便开发的工具库集合
0 0
iOS 福利来了,方便开发的工具库集合(一)
iOS 福利来了,方便开发的工具库集合
0 0
2022 ios APP最新iOS开发上架测试教程
2022 ios APP最新iOS开发上架测试教程
0 0
[ios开发]-APP-上架流程
由于苹果的机制,在非越狱机器上安装必须通过官方的Appstore, 开发者开发好应用后上传Appstore,也需要通过审核等环节。 AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传Appstore作了支持。 本文从三个流程来介绍如何实现AppCan在 线编译出ipa包,以及上传到苹果Appstore。
0 0
+关注
关东升
国内著名iOS/Cocos技术作家,iOS技术顾问,Cocos最有价值专家(CVP),智捷课堂首席培训专家。担任51CTO社区iOS技术顾问。 著有多部移动开发畅销书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
聚划算iOS平台动态化方案LuaView
立即下载
从零到一:IOS平台TensorFlow入门及应用详解
立即下载
从零到一:IOS平台TensorFlow入门及应用详解(附源
立即下载