- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从零开始学iOS7开发系列教程事务管理软件开发实战Chapter9.pdf
从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter9
版权声明:
原⽂及⽰例代码来⾃raywenderlich store中的iOS Apprentice 系列2教程,经过翻译和改编。
版权归原作者所有,本系列教程仅供学习参考使⽤,感兴趣的朋友建议购买原教程(http://
/store/ios-apprentice)。
欢迎继续我们的学习。
在上⼀章的学习中,我们已经给⽤户提供了交互的⽅式,让他们得以在⽂本框中输⼊⾃⼰的⽂本内
容。同时程序还会⾃动检测所输⼊的内容,保证这个代办事务不会是空的。
在这⼀章的学习中,我们要开始学习如何把⽤户所输⼊的⽂本添加到⼀个新的ChecklistItem对象
中,并添加到数据模型数组中。为了实现这⼀点,我们需要创建⼀个⾃⼰的代理。
Don’t panic ,到⺫前为⽌,我们其实已经多次接触过了代理:表视图有⼀个代理,可以对⽤户对⾏
数据的触屏产⽣回应。text field⽂本域有⼀个代理,可以⽤来验证⽂本的⻓度。在上⼀个系列的教
程中,我们还使⽤了⼀个代理对象来监听alert view提⽰对话框。别忘了我们这款应⽤本⾝也有⼀个
名为ChecklistsAppDelegate的代理。在iOS的开发中,代理⼏乎⽆处不在。
代理模式通常⽤于解决类似下⾯的问题:
我们通过界⾯A打开了界⾯B ,不过在应⽤进⾏的过程中,界⾯B有时候也想和界⾯A主动联络,⽐如
当它关闭⾃⾝的时候。⼀个⽐较好的解决⽅法是,让A成为B的代理,这样B就可以在需要的时候给A
发送消息了。
代理模式的⼀个好处是,界⾯B实际上不需要了解界⾯A 的任何事情,它只需要知道A是⾃⼰的代理
就可以了。⽐如UITableView并不在乎你的视图控制器会是怎样的,只要它能在表视图请求的时候提
供正确的cell就好了。在这种模式下,界⾯B独⽴于界⾯A ,但还是可以跟它说上话,术语党给了个
可怕的名词叫做loose coupling (松耦合)。松耦合被认为是⼀种很好的⾯向对象设计实践。
还是打个不恰当的⽐⽅吧,爸妈⽣了你,他们知道关于你的⼀切,但⼤多数情况下你对他们了解的
并不多。不过在学校⾥⾯的时候你偶尔会缺钱,这时就会想起⽗⺟这个财务代理了。不过拿到钱之
后,你还是很快忘了他们,逍遥⾃在去了。
当然,这样是⾮常不孝顺的做法,做⼦⼥的也还是要多了解下⾃⼰的⽗⺟,不要只是要钱的时候才
想起他们。
⽐如在上图中,界⾯B只知道界⾯A有这些代理⽅法,但是对界⾯A 的其它⼀⽆所知。
换句话说,你只知道爸妈关键时刻能给钱你花,⾄于其它的你就根本不在乎了。哎,孽⼦啊!
在这⾥,我们将使⽤代理模式让AddItemViewController 向ChecklistsViewController发送通知,
但同时AddItemViewContyroller⼜⽆需知道ChecklistsViewController的其它事情。
在Xcode 中打开AddItemViewController.h, 在#import和@interface之间输⼊以下代码:
@class AddItemViewController;
@class ChecklistItem;
@protocol AddItemViewControllerDelegate NSObject
-(void)addItemViewControllerDidCancel:(AddItemViewController*)controller;
-(void)addItemViewController:(AddItemViewController*)controller
didFinishAddingItem:(ChecklistItem*)item;
@end
通过以上代码,我们定义了AddItemViewControllerDelegate协议。
需要记住的是,在@protocol和@end之间的语句块都属于⽅法声明。
术语解释:Protocols( 协议)
在现实⽣活中,我们经常会碰到协议,⼤多数时候它和合同属于同义词。⽐如毕业时签署就业协议,
离婚了要签离婚协议等等。
您可能关注的文档
- 【精校+详解】2011年全国中考物理试题分类汇编实验01探究光的直线传播反射和折射规律.doc
- 【系统仿真学报】多区域变风量空调系统神经网络预测控制研究.pdf
- 【系统仿真学报】煤气管道服役期预估神经网络模型的建立与应用.pdf
- 【综合体全案设计】楚雄兆顺第一城——有温度的商业综合体.pdf
- 【详解】嵌入式开发中固件的烧录方式v1.0.pdf
- 【阅享风控沙龙】【周三之夜专题讨论第二十二期】工程项目中的内部控制.pdf
- 一技术部无锡UG数控编程培训,加工中心模具编程技术.doc
- 一种CuxSiyO阻变存储器的温度特性与微观机制分析.pdf
- 一种交流负反馈组态的快速判断方法.pdf
- 一种仿壁虎机器人吸盘组设计与抗倾覆能力分析段军.pdf
- DB11T 1053.6-2013 实验用鱼 第6部分:环境条件.docx
- DB11T 966-2013 切花红掌设施栽培技术规程.docx
- DB11T 1101-2014 商品肉鸡养殖场(小区)疫病防治技术规范.docx
- DB11T 1125-2014 实验动物笼器具 .docx
- DB11T 1102-2014 城市轨道交通工程规划核验测量规程.docx
- DB11T 782.3-2023 巡游出租车安全防范系统技术要求 第3部分:车载防劫防盗报警终端 .docx
- DB11T 904-2012 土池规模化培育轮虫技术规范.docx
- DB11T 1097-2014 矮丛苔草栽培技术规程.docx
- DB11T 939-2012 温拌沥青路面施工及验收规程.docx
- DB11T 943-2012 外墙外保温施工技术规程(复合酚醛保温板聚合物水泥砂浆做法) .docx
文档评论(0)