`

ios delegate和notification的区别

 
阅读更多
1. 效率肯定是delegate比nsnotification高。

2. delegate方法比notification更加直接,最典型的特征是,delegate方法往往需要关注返回值,也就是delegate方法的结果。比如-windowShouldClose:,需要关心返回的是yes还是no。所以delegate方法往往包含should这个很传神的词。也就是好比你做我的delegate,我会问你我想关闭窗口你愿意吗?你需要给我一个答案,我根据你的答案来决定如何做下一步。相反的,notification最大的特色就是不关心接受者的态度,我只管把通告放出来,你接受不接受就是你的事情,同时我也不关心结果。所以notification往往用did这个词汇,比如NSWindowDidResizeNotification,那么nswindow对象放出这个notification后就什么都不管了也不会等待接受者的反应。

------

如果2个模块之间有关系,就用delegate

比如,view 和 subview,view 和viewController,前一个view 和后一个view,等等兄弟姐妹父子关系

2个模块不沾边的情况下,选notification

分享到:
评论

相关推荐

    Delegate与Notification区别的一个小试验

    在iOS和macOS开发中,Objective-C和Swift中常见的两种通信机制是代理(Delegate)和通知(Notification)。本文将通过一个小型实验来深入探讨这两者的区别,并解释它们各自的使用场景和优缺点。 首先,代理...

    ios5 Notification示例

    首先,我们要了解iOS中的Notification分为本地通知(Local Notification)和远程通知(Remote Notification,也称为推送通知)。在“ios5 Notification示例”中,我们主要关注的是本地通知,因为它主要涉及应用内部...

    ios delegate传值

    在iOS开发中,Delegate是一种常见的对象间通信方式,主要用于实现页面间的交互,特别是数据传递。在你的场景中,"B页面往A页面传值"是一个典型的使用Delegate进行反向传值的例子。下面将详细讲解iOS中Delegate的概念...

    delegate 使用 xcode iOS

    `Delegate`机制是iOS设计模式的基础,广泛应用于UIViewController、UITableView、UITextField等组件,实现事件响应和数据传递。 在标题“delegate 使用 xcode iOS”中,我们主要探讨的是如何在Xcode环境下利用`...

    iOS 中KVC、KVO、NSNotification、delegate 总结及区别

    iOS开发中,KVC(Key-Value Coding)、KVO(Key-Value Observing)、NSNotification和Delegate是四种常见的数据通信和状态监听技术。下面将详细解释这些概念及其区别。 1. KVC(Key-Value Coding) KVC是Objective-...

    iOS基础——通知代理之NSNotificationCenter、Delegate(新)

    在iOS开发中,通知代理是实现对象间通信的重要机制,主要分为`NSNotificationCenter`和`Delegate`两种方式。本文将深入探讨这两种技术,并提供一个`DelegateDemo`实例来帮助理解。 首先,我们来看`NSNotification`...

    iOS基础——通知代理之NSNotificationCenter、Delegate

    在iOS开发中,通知代理是实现对象间通信的重要机制,主要分为两个方面:NSNotificationCenter和Delegate。这两种方式都允许一个对象监听并响应其他对象的事件,但它们各自有其特性和适用场景。 首先,我们来详细...

    iOS开发高级程序员面试题-答案.pdf,这是一份不错的文件

    知识点:delegate和notification的区别,delegate机制使得接收者可以改变发送者的行为,而notification机制使得发送者告知接收者事件已经发生或者将要发生。 2. Object-C中创建线程的方法是什么?如果在主线程中...

    iOS完整程序代码

    9. **通知和代理**:iOS中的Notification和Delegate机制是对象间通信的重要手段,代码中可能会展示它们的使用场景和实现方法。 10. **权限管理**:例如访问用户位置、照片库、通知权限等,都需要获取用户的同意。...

    ios-iOS中六种常用的传值方法.zip

    实现六种iOS中常用的传值,包括:block、delegate、Notification通知传值、KVC传值、NSUserDefaults(本地数据持久化)和单例传值。这几种传值写在一个demo中,并附有详细的注释说明。

    IOS从入门到精通

    6. App Delegate与导航控制器:App Delegate是每个iOS应用的核心组件,负责处理应用程序的启动、事件和关闭。而导航控制器则提供了一种管理多个屏幕的层次结构,使得用户可以方便地在应用的不同页面间导航。 7. ...

    斯坦福大学公开课:ios7应用开发Michismon源码

    该项目模仿了经典的电子宠物游戏,让用户通过交互来培养自己的虚拟宠物,展示了iOS应用的基本架构和功能实现。 2. **Swift语言基础** Michismon项目采用Swift编程语言编写,Swift是Apple为iOS、macOS和watchOS开发...

    ios应用源码之开发iphone的基础例子代码写的很好 2018127

    6. **Delegate与Notification**:Delegate协议用于对象间通信,一个对象可以作为另一个对象的代理,接收特定事件的通知。Notification机制允许任何对象发布和监听全局通知,实现松耦合的通信。 7. **Core Data**:...

    OC中以delegate形式页面传值

    在iOS开发中,Objective-C(OC)是一种常用的编程语言,特别是在构建用户界面时。页面间的通信是应用程序设计的关键部分,而`delegate`模式是OC中实现这种通信的一种常见方法。本篇文章将深入探讨如何在OC中使用`...

    斯坦福 Swift IOS9开发示例源码

    5. **TableView和CollectionView**:创建动态内容展示,理解DataSource和Delegate模式。 6. **动画与过渡**:利用UIKit实现视图动画,理解CAAnimation和UIView动画的区别。 7. **推送通知**:集成Apple Push ...

    精通iOS开发(第七版)源码

    8. **通知与代理**:iOS中的Notification和Delegate机制是组件间通信的关键,源码中会演示如何注册接收通知,以及实现协议来处理代理方法。 9. **Auto Layout与Size Classes**:用于构建适应不同屏幕尺寸和设备的...

    ios 最全传值方式

    本文将深入探讨iOS中最常用的几种传值方式,包括Block、Delegate、属性赋值、代理协议以及Notification Center。了解并熟练掌握这些方法,能够帮助开发者更加高效地构建应用程序。 1. **Block(闭包)** Block是一...

    iOS常用事件传递方法

    标题提到的"iOS常用事件传递方法"主要包括委托(delegate)、通知(Notification)以及Block这三种方式。下面将详细讲解这三种方法,并结合描述中的例子——调用系统打电话功能,来阐述它们的应用。 1. 委托...

    IOS应用源码——Scratch'n'See for iOS.rar

    6. **Delegate与Notification**:iOS中的事件处理常使用委托(Delegate)模式和通知(Notification)。Scratch'n'See的事件响应机制可以通过这两种方式实现。 7. **Core Data**:如果应用有持久化数据需求,可能会...

    IOS应用源码Demo-新闻客户端应用-毕设学习.zip

    8. **Notifications和Delegate**:应用可能使用Notification进行事件传递,比如当新新闻发布时通知用户。同时,Delegate模式也可能被用来处理各个组件之间的通信。 9. **TableView和CollectionView的Cell复用**:...

Global site tag (gtag.js) - Google Analytics