《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.6节键值存储同步

8.6 键值存储同步
iOS组件与框架——iOS SDK高级特性剖析
iCloud还支持键值存储同步。这类似于在NSMutableDictionary或NSUserDefaults中存储信息,将一个与对象值相关联的键用于存储和检索;iCloud键值存储的不同之处在于,将自动在设备之间同步键和值。本书编写期间,iCloud为每个应用提供1MB的键值存储空间,最多可存储1024个键值对,因此键值存储机制只适合用于存储少量信息。

本章的示例应用利用iCloud键值存储来跟踪最后修改的备忘录。详细视图控制器在方法configureView中存储最后修改的备忘录的名称。

这个方法获取指向iCloud键值存储的引用,这是一个NSUbiquitousKeyValueStore实例。它将键kICFLastUpdatedNoteKey的值设置为备忘录名称,再调用synchronize确保数据得以马上同步。

主视图控制器在方法viewDidLoad中注册通知NSUbiquitousKeyValueStoreDidChange ExternallyNotification。

请在一台设备上显示备忘录清单,并在另一台设备上修改一份备忘录。注意到几秒钟后,第一台设备上的星号将移到刚修改的备忘录旁边。

时间: 2025-01-20 11:24:46

《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.6节键值存储同步的相关文章

《iOS组件与框架——iOS SDK高级特性剖析》——第2章,第2.4节地图注释和覆盖层

2.4 地图注释和覆盖层 iOS组件与框架--iOS SDK高级特性剖析 地图视图(MKMapView)是一种可滚动的视图,行为独特:以标准方式在其中添加子视图时,子视图不会随地图视图滚动,而是静止的,其相对于地图视图框架的位置始终不变.对悬停按钮或标签来说,这种特点也许不错,但在地图上标出点和细节至关重要.要标出地图视图中感兴趣的点或区域,可使用地图注释和覆盖层.地图滚动或缩放时,注释和覆盖层在地图上的位置保持不变.地图注释是使用地图上的单个坐标点定义的,而地图覆盖层可以是线段.多边形或复杂形

《iOS组件与框架——iOS SDK高级特性剖析》——第6章,第6.2节打造播放引擎

6.2 打造播放引擎 iOS组件与框架--iOS SDK高级特性剖析 如果对播放控制没有深刻认识,获取音频数据将毫无意义.要在应用中播放音乐,需要创建一个MPMusicPlayerController实例.在头文件ICFViewController.h中,声明了一个名为player的MPMusicPlayerController变量,在整个示例应用中,都将使用它来控制播放以及获取当前播放的曲目的信息. 在方法viewDidLoad中,初始化了MPMusicPlayerController变量pl

《iOS组件与框架——iOS SDK高级特性剖析》——导读

目 录前言 第1章 UIKit Dynamics第2章 Core Location.MapKit和地理围栏 2.1 示例应用2.2 获取用户的位置 2.3 显示地图 2.4 地图注释和覆盖层2.5 地理编码和反向地理编码 2.6 地理围栏2.7 获取线路 2.8 小结 2.9 练习 第3章 排行榜第4章 成就第5章 地址簿第6章 使用音乐库 6.1 示例应用简介 6.2 打造播放引擎 6.3 媒体选择器6.4 以编程方式选择媒体 6.5 小结6.6 练习 第7章 使用和分析JSON第8章 iCl

iOS组件化方案(二)

概述 这是iOS组件化方案-总结的第二篇,在本文中我实现了Target-Action方案的Demo,并与第一篇介绍的protocol方案做出对比. 如果没有看过我第一篇protocol组件化方案的同学,可以先去下载我那篇文章中提供的Demo,方便理解我本文的详述以及了解我Demo中实现的业务场景,传送门iOS组件化方案-总结的第一篇 Target-Action方案 国际惯例先上Demo(下载主工程就好了哈,如果不能理解可以把所有业务模块都下载下来,Casa也提供了官方Demo,我第一篇文章中提供

iOS开发新框架ReactiveCocoa简介

ReactiveCocoa(其简称为RAC)是由Github 开源的一个应用于iOS和OS X开发的新框架.RAC具有函 数式编程和响应式编程的特性.它主要吸取了.Net的 Reactive Extensions的设计和实现.本文将详细 介绍该框架试图解决什么问题,以及其用法与特点. ReactiveCocoa试图解决什么问题 经过一段时间的研究,我认为ReactiveCocoa试图解决以下3个问题: 传统iOS开发过程中,状态以及状态之间依赖过多的问题 传统MVC架构的问题:Controlle

我的女神——简洁实用的iOS代码调试框架

我的女神--简洁实用的iOS代码调试框架 一.引言         这篇博客的起源是接手了公司的一个已经完成的项目,来做代码优化,项目工程很大,并且引入了很多公司内部的SDK,要搞清楚公司内部的这套框架,的确不是件容易的事,并且由于这个项目是多人开发的,在调试阶段会打印出巨量的调试信息,使得浏览有用信息变的十分困难,更加恐怖的是,很多信息是SDK中的调试打印,将这些都进行注销是非常费劲甚至不可能的事,于是便有了这样一些需求:首先,我需要清楚了解各个controller之间的跳转关系,需要快速的弄

Kiwi,BDD行为测试框架–iOS攻城狮进阶必备技能

Kiwi,BDD行为测试框架–iOS攻城狮进阶必备技能 http://www.ios122.com/ 简介 Kiwi 是一个适用于iOS开发的行为驱动测试框架,旨在提供一个足够简单易用的BDD库. 项目主页: https://github.com/kiwi-bdd/Kiwi 示例下载: https://github.com/ios122/ios122 使用Cocopods 安装 1 2 3 4 target :AmazingAppTests, :exclusive => true do   po

使用iOS原生sqlite3框架对sqlite数据库进行操作

使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言       sqlite数据库是一种小型数据库,由于其小巧与简洁,在移动开发领域应用深广,sqlite数据库有一套完备的sqlite语句进行管理操作,一些常用的语句和可视化的开发工具在上篇博客中有介绍,地址如下: sqlite数据库常用语句及可视化工具介绍:http://my.oschina.net/u/2340880/blog/600820.       在iOS的原生开发框架中可以对sqlite数据库进行很好的支持,这个

关于第三方IOS的checkBox框架的使用

关于第三方IOS的checkBox框架的使用 这个框架是从github上下载获取的:M13Checkbox. 只是github的源码项目工程比较久远,所以我把代码部分拷贝到XCode 7.1.0新建的项目里. 下面是展示效果   客户端源码使用参考: 1 #import "ViewController.h" 2 #import "M13Checkbox.h" 3 4 @interface ViewController () 5 6 @end 7 8 @impleme