从零开始学iOS7开发系列教程事务管理软件开发实战Chapter9.pdf

从零开始学iOS7开发系列教程事务管理软件开发实战Chapter9.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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( 协议) 在现实⽣活中,我们经常会碰到协议,⼤多数时候它和合同属于同义词。⽐如毕业时签署就业协议, 离婚了要签离婚协议等等。

您可能关注的文档

文档评论(0)

ziyouzizai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档