《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.5节解决冲突
本节书摘来自异步社区《iOS组件与框架——iOS SDK高级特性剖析》一书中的第8章,第8.5节解决冲突,作者 【美】Kyle Richter , Joe Keeley,更多章节内容可以访问云栖社区“异步社区”公众号查看
8.5 解决冲突
iOS组件与框架——iOS SDK高级特性剖析
文档处于冲突状态时,可通过NSFileVersion类获悉文档的各种版本。用户轻按按钮Resolve Conflict时,将调用方法resolveConflict-Tapped:。这个方法收集处于冲突状态的文档的版本信息,并实例化一个自定义的页面视图控制器,让用户能够浏览不同的冲突版本并选择最终版本。
这个方法首先获取冲突版本,即不能合并到本地版本的远程版本,并将它们放到一个数组中,因为可能存在多个冲突版本。接下来,这个方法获取文档的当前版本,即本地编辑的版本,并将它和冲突版本一起加入到一个可变数组中。这个可变数组提供了所有版本,供用户进行评估以选择正确的版本。然后,这个方法创建一个ICFConflictResolutionViewController实例,这是一个自定义页面视图控制器,让用户能够浏览冲突版本并选择正确版本。接下来,设置这个页面视图控制器的属性,让它知道有哪些冲突版本、当前版本是哪个(这对后面解决冲突很重要)、处于冲突状态的备忘录的URL以及选定正确版本后要调用的委托。
注意:
页面视图控制器提供了浏览冲突版本的方便途径,但并非只能采用这种方式。任何可显示冲突版本信息并让用户选择正确版本的方式都可行。
接下来,显示冲突解决页面视图控制器,如图8.6所示。
对于备忘录的每个冲突版本,冲突解决页面视图控制器都创建一个ICFConflictVersionView Controller实例,用于显示该冲突版本的信息。在方法viewControllerAtIndex:storyboard:中,页面视图控制器根据需要实例化版本视图控制器,并指定它应显示哪个NSFileVersion。
为显示各个版本的信息,版本视图控制器在方法viewDidLoad中从其NSFileVersion那里获取这些信息,并更新用户界面。
详细视图控制器再根据选定版本是否是当前版本采取相应的措施,以解决冲突;这是在方法noteConflictResolve:forCurrentVersion:中完成的。这个方法检查传入的参数isCurrentVersion,如果其值为YES,就删除URL指定的文件的其他版本,并告诉其他版本冲突解决了。
此时,文档将发出通知,指出自己恢复到了正常状态。方法documentStateChangedmethod收到这个通知后,让用户能够继续编辑文档(这在8.4.2节介绍过)。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《OpenGL ES 3.x游戏开发(上卷)》一1.5 Android应用程序运行的机制
本节书摘来异步社区《OpenGL ES 3.x游戏开发(上卷)》一书中的第1章,第1.5节,作者: 吴亚峰 责编: 张涛,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.5 Android应用程序运行的机制 前面介绍了如何搭建Android开发环境、如何开发Hello Android应用程序以及Android应用程序的调试,接下来在本节中将简要地介绍Android应用程序的运行机制。 1.5.1 应用程序的系统架构 Android平台由应用程序、应用程序框架、Android运行时、系统库以及底层Linux内核构成,详细结构如图1-68所示。 说明 应用程序层里面包含的就是需要读者去发挥创意开发的、各种各样丰富多彩的应用程序,这也是一般Android应用开发人员工作的层次。 1.5.2 应用程序框架 Android应用程序框架是开发Android应用的基础,开发者在开发时有大部分的时间用在调用这一层。Android应用程序框架包含活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、位置管理器、资源管理器以及通知管理器等,如图1-69所示。 应用程序框架层各部分的...
- 下一篇
《Android 3D 游戏案例开发大全》——6.2节游戏的策划和准备工作
本节书摘来自异步社区《Android 3D 游戏案例开发大全》一书中的第6章,第6.2节游戏的策划和准备工作,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区“异步社区”公众号查看 6.2 游戏的策划和准备工作Android 3D 游戏案例开发大全上一节介绍了本游戏的背景及功能,本节将介绍游戏的策划及开发前的准备工作,这些工作虽然略显枯燥,但是在游戏的开发过程中却起到很大的作用。在正式开发游戏前进行细致地策划能让开发人员在开发前对游戏有总体的把握,理清逻辑关系,使游戏开发过程更加顺利。 6.2.1 游戏的策划本小节将对游戏的策划进行简单介绍,在真实的游戏开发中,该步骤还需更细致、更具体、更全面,该游戏的策划如下所列。 游戏情节本游戏属于休闲益智类游戏,情景设置非常简单,主要有机器人、箱子、目标点、水和桥等。 运行目标平台游戏目标平台为Android 2.2或更高的版本。 操作方式本游戏通过触摸屏幕进行操作,玩家可触控屏幕的虚拟摇杆完成机器人的前进、箱子前进、机器人左转弯、右转弯等动作,触控屏幕右上角的“视角切换”按钮来完成界面视角的切换。 呈现技术本游戏采用OpenG...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路