探索ios开发中的消息传递机制

探索ios开发中的消息传递机制

ID:27801888

大小:516.79 KB

页数:13页

时间:2018-12-06

探索ios开发中的消息传递机制_第1页
探索ios开发中的消息传递机制_第2页
探索ios开发中的消息传递机制_第3页
探索ios开发中的消息传递机制_第4页
探索ios开发中的消息传递机制_第5页
资源描述:

《探索ios开发中的消息传递机制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、探索iOS开发中的消息传递机制每个应用程序或多或少,都由•些松耦合的对彖构成,这些对彖彼此z间要想很好的完成任务,就需要进行消息传递。本文将介绍所有町用的消息传递机制,并通过示例来介绍这些机制在苹果的Framework中如何使用,同吋,还介绍了一些最佳实践建议,告诉你什么时机该选择使用什么机制。虽然这一期的主题是关于FoundationFramework的,不过本文中还介绍了一些超出FoundationFramework(KVO和Notification)范围的一些消息传递机制,另外还介绍了delegation,blockfltarget-action。大多数情况下,消息传

2、递该使川什么机制,是很明确的了,当然了,在某些情况下该使用什么机制并没有明确的答案,需要你亲自去尝试一下。本文中,会经常提及接收者[recipient]和发送者[sender]o在消息传递机制中具体是什么意思,我们可以通过一个示例來解释:一个tableview是发送者,而它的delegate就是接收者。CoreDatamanagedobjectcontext是notification的发送者,而获取这些notification的主体则是接收者。一个滑块(siider)是action消息的发送者,而在代码里血対应着实现这个action的responder就是接收者。対象中的某

3、个属性支持KVO,那么谁修改这个值,谁就是发送者,对应的观察者(observer)则是接收者。可用的机制首先我们来看看每种机制的具体特点。在下一节屮,我会结合一个流程图来介绍如何在具体情况下,选择正确的消息传递机制。最示,将介绍一些来苹果Framework中的示例,并会解释在某种确定情况下为什么要选择固定的机制。探索iOS开发中的消息传递机制每个应用程序或多或少,都由•些松耦合的对彖构成,这些对彖彼此z间要想很好的完成任务,就需要进行消息传递。本文将介绍所有町用的消息传递机制,并通过示例来介绍这些机制在苹果的Framework中如何使用,同吋,还介绍了一些最佳实践建议,告诉

4、你什么时机该选择使用什么机制。虽然这一期的主题是关于FoundationFramework的,不过本文中还介绍了一些超出FoundationFramework(KVO和Notification)范围的一些消息传递机制,另外还介绍了delegation,blockfltarget-action。大多数情况下,消息传递该使川什么机制,是很明确的了,当然了,在某些情况下该使用什么机制并没有明确的答案,需要你亲自去尝试一下。本文中,会经常提及接收者[recipient]和发送者[sender]o在消息传递机制中具体是什么意思,我们可以通过一个示例來解释:一个tableview是发送

5、者,而它的delegate就是接收者。CoreDatamanagedobjectcontext是notification的发送者,而获取这些notification的主体则是接收者。一个滑块(siider)是action消息的发送者,而在代码里血対应着实现这个action的responder就是接收者。対象中的某个属性支持KVO,那么谁修改这个值,谁就是发送者,对应的观察者(observer)则是接收者。可用的机制首先我们来看看每种机制的具体特点。在下一节屮,我会结合一个流程图来介绍如何在具体情况下,选择正确的消息传递机制。最示,将介绍一些来苹果Framework中的示例,

6、并会解释在某种确定情况下为什么要选择固定的机制。KVOKVO提供了这样一种机制:当对彖中的某个属性值发生了改变,对以对这些值的观察者做岀通知。KVO的实现包含在Foundation里而,基于Foundation构建的许多Framework对KVO部有所依赖。要想了解更多关于如何使用KVO,可以阅读木期由Daniel写的的KVO和KVC文章。如果对某个对象屮值的改变情况感兴趣,那么可以使用KVO消息传递机制。这里有两个要求,首先,接收若(会接收到值发生改变的消息)必须知道发送者(值将发生改变的那个对彖)。另外,接收者同样还需耍知道发送者的生命周期,因为在销毁发送者对彖Z前,帝

7、耍取消观察者的注册。如果这两个要求都满足了,消息传递过程屮可以是1对多(多个观察者可以注册某个对彖中的值)。如果计划在CoreData对象上使用KVO,需要知道这跟一般的KVO使用方法有点不同。那就是必须结合CoreData的故障机制(faultingmechanism),一旦coredata出现了故障,它将会触发其属性对应的观察者(即使这些属性值没有发生改变)oNotification在不相关的两部分代码屮要想进行消息传递,通知(notifacation)是非常好的一种机制,它可以对消息进行广播。特别是想要传递丰

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。