博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《iOS组件与框架——iOS SDK高级特性剖析》——第8章,第8.5节解决冲突
阅读量:6683 次
发布时间:2019-06-25

本文共 1152 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区《iOS组件与框架——iOS SDK高级特性剖析》一书中的第8章,第8.5节解决冲突,作者 【美】Kyle Richter , Joe Keeley,更多章节内容可以访问云栖社区“异步社区”公众号查看

8.5 解决冲突

iOS组件与框架——iOS SDK高级特性剖析
文档处于冲突状态时,可通过NSFileVersion类获悉文档的各种版本。用户轻按按钮Resolve Conflict时,将调用方法resolveConflict-Tapped:。这个方法收集处于冲突状态的文档的版本信息,并实例化一个自定义的页面视图控制器,让用户能够浏览不同的冲突版本并选择最终版本。

8534934692f2117fd02dbb94e7086ee8caf55986

这个方法首先获取冲突版本,即不能合并到本地版本的远程版本,并将它们放到一个数组中,因为可能存在多个冲突版本。接下来,这个方法获取文档的当前版本,即本地编辑的版本,并将它和冲突版本一起加入到一个可变数组中。这个可变数组提供了所有版本,供用户进行评估以选择正确的版本。然后,这个方法创建一个ICFConflictResolutionViewController实例,这是一个自定义页面视图控制器,让用户能够浏览冲突版本并选择正确版本。接下来,设置这个页面视图控制器的属性,让它知道有哪些冲突版本、当前版本是哪个(这对后面解决冲突很重要)、处于冲突状态的备忘录的URL以及选定正确版本后要调用的委托。

注意:

页面视图控制器提供了浏览冲突版本的方便途径,但并非只能采用这种方式。任何可显示冲突版本信息并让用户选择正确版本的方式都可行。

接下来,显示冲突解决页面视图控制器,如图8.6所示。

ee0b169ac6d9d39c17122ed1de4fb67ae7a71861

对于备忘录的每个冲突版本,冲突解决页面视图控制器都创建一个ICFConflictVersionView Controller实例,用于显示该冲突版本的信息。在方法viewControllerAtIndex:storyboard:中,页面视图控制器根据需要实例化版本视图控制器,并指定它应显示哪个NSFileVersion。

6d3bb5fe5a52a0d0c84426e3d76a17fffb19ef44

为显示各个版本的信息,版本视图控制器在方法viewDidLoad中从其NSFileVersion那里获取这些信息,并更新用户界面。

d43e528d1d24e8c47ebaff9151d00c7e988cc4d0

详细视图控制器再根据选定版本是否是当前版本采取相应的措施,以解决冲突;这是在方法noteConflictResolve:forCurrentVersion:中完成的。这个方法检查传入的参数isCurrentVersion,如果其值为YES,就删除URL指定的文件的其他版本,并告诉其他版本冲突解决了。

781da1ea9139aeed0a361521067a99d9cc9e5776

此时,文档将发出通知,指出自己恢复到了正常状态。方法documentStateChangedmethod收到这个通知后,让用户能够继续编辑文档(这在8.4.2节介绍过)。

转载地址:http://gboao.baihongyu.com/

你可能感兴趣的文章
css优先级详解
查看>>
小白第三天
查看>>
2016年linux运维人员必会开源运维工具体系
查看>>
理性分析Python和C#哪个更有前途?
查看>>
mysql主备复制I/O线程不能同步问题
查看>>
高速缓存dns
查看>>
安装lenovo SR860 7x69服务器遇到的坑
查看>>
MIT透过机器学习技术用胺基酸预测蛋白质结构
查看>>
python课堂笔记之django-day01(8)
查看>>
Hadoop之HDFS分布式文件系统具有哪些优点?
查看>>
小型企业公司路由器做DHCP服务器
查看>>
愿不负青春 历经风雨 归期我们仍是少年|六一大童节
查看>>
洞悉物联网发展1000问之物联网与大数据,人工智能到底是什么关系?
查看>>
JAVA数组和面向对象
查看>>
NVisionXR_iOS教程四 —— 在立方体上贴材质
查看>>
Microsoft Visual C++ Runtime library not enough space for thread data
查看>>
Centos 7 ntp时间服务器搭建
查看>>
要想月薪达到5万,要必备以下9项技能,阿里前大数据工程师说的
查看>>
电压电流采集模块,温湿度采集,称重模块,变送器,adc模数转换模块
查看>>
linux网卡配置
查看>>