六、观察Calendar Database的外部变化
来源:互联网 发布:一战是怎么回事知乎 编辑:程序博客网 时间:2024/04/30 14:56
简介
由于其他程序可以在你运行app时修改Calendar Database的值,所以如果你的app获取了日历事件或提醒,你应该同时注册关于Calendar Database的通知。这样,你可以保证展示给用户的信息是最新的。
注册Notifications
当Calendar Database有任何变化时,EKEventStore 都会post一个 EKEventStoreChangedNotification消息。注册消息代码如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(storeChanged:) name:EKEventStoreChangedNotification object:eventStore];
Notifications的接收处理
当我们收到EKEventStoreChangedNotification这个通知时,表示我们获取到的数据可能发生了改变,这些改变可能是添加、修改或删除,会影响到我们对用户的展示。
- 如果为添加,那么他不会影响到之前获取到的事件,但是我们应该把新添加的事件和之前获取到的事件作为一个整体来展示给用户一个最新的信息。
- 如果一个事件为修改或删除,那么我们展示给用户的关于当前事件的信息有可能是无效的,或者说不是最新的。
因为当Calendar Database发生改变时,你的本地数据经常是无效的,或者说未完成的,所以当收到EKEventStoreChangedNotification消息时应该重新获取事件信息。但如果你收到EKEventStoreChangedNotification消息时正在修改一个事件,你并不想在没有必要的情况下就重新获取事件,那么此时你可以对该事件调用refresh方法,如果返回YES,你可以继续当前的修改操作;如果返回NO,你必须要重新获取事件。
注意:当事件发生变化时,Event Kit UI会自动更新,下章会有详细介绍
0 0
- 六、观察Calendar Database的外部变化
- top:动态观察程序的变化
- top:动态观察程序的变化
- AFNetworking之观察属性的变化
- 观察颜色变化
- 无线场景下观察TCP滑动窗口大小的变化
- 有线场景下观察TCP滑动窗口大小的变化
- Swift中观察者模式观察一个值的变化
- jquery.calendar.js日历中日期的格式变化
- 观察mysql服务器周期性变化
- Oracle Database 12.1中rman show all的新变化
- tail -f log.txt命令的小技巧------观察日志log.txt的动态变化
- 保持饥饿,保持愚蠢----关于IT行业的思考和个人心态变化的一些观察
- 3用于MNIST的卷积神经网络-3.6改变网络激活函数观察网络性能的变化
- 90_内容观察者观察本应用程序数据库数据的变化
- 《我与大数据的365天》 ——(3) 【写代码观察数据变化】
- android4.0导入外部库方式的变化
- android4.0导入外部库方式的变化
- IOS视图之基础整理
- 管理员界面的用户权限设置
- POJ - 2182 - Lost Cows (线段树)
- Android中Bitmap和Drawable
- Mysql Workbench 切换Schema
- 六、观察Calendar Database的外部变化
- IOS之沙盒路径,文件操作,XML解析
- Dynamic Performance Tables not accessible 问题解决
- Android中OnScrollListener回调具体剖析
- uploadify fileDataName
- Hibernate的 @Transient
- 黑马程序员---C 语言中快速排序数组,不额外占用内存空间
- spring+mybatis利用interceptor(plugin)兑现数据库读写分离
- Popupwindow的使用