`

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

阅读更多

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应用源码Demo-iCloud代码示例-毕设学习.zip

    在iOS开发中,iCloud是一种云存储服务,允许开发者将用户的数据存储在云端,并在用户的各个设备间同步。iCloudKit是苹果提供的框架,使得开发者可以轻松地在应用中集成iCloud功能。通过这个源码,我们可以学习到: ...

    IOS应用源码之【应用】-iCloud代码示例.rar

    在iOS开发中,iCloud是一项强大的云存储服务,它允许开发者将用户的数据同步到苹果的云端,以便在多个设备间无缝地共享和访问。这个压缩包"【应用】-iCloud代码示例.rar"提供了iOS应用中使用iCloud功能的具体代码...

    【应用】★★★★-iCloud代码示例.zipIOS应用例子源码下载

    【应用】★★★★-iCloud代码示例.zipIOS应用例子源码下载【应用】★★★★-iCloud代码示例.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    IOS网络编程与云端应用

    《iOS网络编程与云端应用》是一本深入探讨iOS平台网络编程和云端应用开发的专业书籍,由关东升撰写。本书旨在帮助iOS开发者掌握网络通信的基本原理和实践技巧,以及如何利用云端服务提升应用的功能和用户体验。 一...

    CoreData-ICloud

    CoreData 是苹果公司提供的一种数据管理框架,用于iOS和macOS应用中存储、管理和检索对象。它是Objective-C和Swift开发者处理复杂数据模型的强大工具。在iOS应用中,使用CoreData可以方便地创建、修改和查询数据库,...

    一步一步学习iOS5编程-项目源代码

    iOS 5引入了iCloud服务,开发者可以通过iCloudKit API将用户数据同步到云端,实现跨设备的数据共享和备份。 通过分析这个项目源代码,你可以深入学习上述技术,并了解如何在实际项目中应用它们。实践是最好的老师...

    传智播客iOS6免费公开课程-调用icloud

    此外,还需要在Info.plist文件中配置相应的iCloud键值对存储选项。 在实现iCloud功能时,我们通常会遇到几个关键步骤。首先,要初始化CloudKit容器并设置代理,以便接收数据同步和更改的通知。然后,创建CKRecord...

    Laravel开发-icloud

    总的来说,Laravel的iCloud集成让开发者能够方便地在云端存储文件,提供了灵活性和可扩展性,使得大型项目的数据管理变得更加高效和安全。通过理解和实践这些知识点,你可以更好地利用Laravel框架来构建支持云上传的...

    藏经阁-Intercepting-iCloud-Keychain.pdf

    其中,端到端加密确保了数据在传输和存储过程中的安全,而 Circle of Trust 则确保了只有信任的设备可以访问用户的数据。两步验证则提供了额外的一层保护,防止攻击者通过 stole 的 Apple ID 密码来访问用户的数据。...

    《iOS网络编程与云端应用最佳实践》源码

    《iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、WebService、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、以及社交网络...

    react-native-icloud-sync:用于与icloud同步的React-native包装器

    react-native-icloud-sync 用于与icloud同步的React-native包装器。 将其添加到您的项目 运行npm install react-native-icloud-sync --save 在XCode中打开您的项目,右键单击Libraries ,然后单击Add Files to ...

    IOS禁止同步到iCloud的封装类

    在iOS开发中,iCloud是苹果提供的一种云存储服务,允许用户在不同设备间同步数据。然而,在某些情况下,开发者可能需要阻止特定的文件或目录同步到iCloud,以保护用户的隐私、避免数据泄露或是优化应用程序性能。...

    IOS网络编程与云端应用最佳实践 + 随书代码.zip

    《清华开发者书库:iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、Web Service、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook...

    iOS 5 Core framework iCloud

    iCloud 是苹果公司推出的云服务解决方案,允许用户存储数据并跨设备同步这些数据。在 iOS 5 中,iCloud 的集成变得更加深入,为开发者提供了更多利用云服务的功能和选项。 #### 三、iCloud 的关键技术 - **文档同步...

    Swift-iCloud-Sync:一个让我可以使用 iCloud 和 Swift 在不同设备之间同步数据的学习项目

    NSUbiquitousKeyValueStore 是一个轻量级的 API,适用于存储小量键值对数据的同步。在这个项目中,它可能用于存储任务的基本信息,如任务标题和完成状态。而 UIDocument 或 Core Data 则更适合存储结构化数据,如...

    nosync-icloud:避免iCloud同步node_modules(避免node_modules与iCloud同步)

    nosync-icloud 避免 iCloud 同步 node_modules(Avoid syncing node_modules to iCloud)。     安装 npm i -g nosync-icloud # or yarn global add nosync-icloud 我要解决什么痛点? 很多开发者都在使用 Mac ...

    iOS网络编程与云端应用最佳实践

    iOS网络编程是iOS应用开发中非常重要的一个环节,尤其是在涉及到云端应用时,网络编程成为了数据交换、获取云端数据、推送通知等功能实现的基础。在iOS开发中,使用网络编程技术可以实现各种各样的功能,例如与苹果...

    Swift编程-iOS应用-沙盒模型

    Swift编程在iOS应用开发中扮演着至关重要的...总之,Swift编程-iOS应用-沙盒模型的学习不仅关乎技术实践,更关乎用户隐私保护和应用安全性的意识。理解并掌握沙盒模型,能让你的iOS应用更加专业且符合苹果的开发规范。

    IOS Native Pro 2019.18.unitypackage

    基础 -iCloud键值BuildInfo,时区,摄像头许可,音频会话, 游戏套件 -身份验证,游戏中心用户界面,排行榜,成就,保存游戏。 商店工具包 -初始化,购买流程,收货确认,商店评论控制器。 UIKit-日期时间选择器...

    iOS网络编程与云端应用最佳实践随书代码

    iOS网络编程与云端应用最佳实践随书代码,系统论述了iOS 6网络编程和云端应用开发技术,介绍了苹果网络、数据交换格式、Web Service、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、社交网络...

Global site tag (gtag.js) - Google Analytics