NSNotificationCenter 与委托(使用协议)?

2023-12-13

它们各自的优点和缺点是什么?
我应该在哪里具体使用它们?


这里的经验法则是有多少客户希望收到事件通知。如果它主要是一个对象(例如,关闭视图或对单击的按钮进行操作,或对失败的下载做出反应),那么您应该使用委托模型。

如果您发出的事件可能同时引起许多对象的兴趣(例如屏幕旋转、内存使用、用户登录/注销),那么您应该使用NSNotificationCenter.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSNotificationCenter 与委托(使用协议)? 的相关文章

  • 在午夜更新应用程序徽章,并提供以下选项:应用程序未启动或在后台,徽章数量可能会减少

    我正在阅读许多有关本地通知的内容以及它们如何帮助更新应用程序徽章编号 我想在午夜更新此徽章 并将其值设置为我在午夜之前无法知道的数字 因此 如果可能的话 我想在午夜启动一个功能来更新 加载一些数据 检查要显示的数字 并将其显示在徽章上 当然
  • 在不同的捆绑包上测试 iPhone 应用内购买?

    我们有一组 iPhone 应用程序的 Beta 测试人员 最近 我们在应用程序中添加了应用内购买功能 在此之前 我们会使用单独的捆绑 ID 和名称向 Beta 测试人员发送临时版本 以便他们可以在手机上拥有商店版本和临时版本 然而 似乎我们
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • iphone:在 UIWebView 之上查看?

    我正在开发一个浏览器应用程序 并且 UIWebView 顶部有一个地址栏 在 MobileSafari 上 如果向下滚动 地址栏开始移动到顶部 移出屏幕 并且 UIWebView 不会滚动 只有当地址栏完全消失时 它才开始滚动 我也想在我的
  • 如何使用MKMapView完成加载委托,可能的“完成显示”委托?

    当用户在选择注释后点击 保存 时 我尝试保存地图视图的缩略图 当用户尚未放大该注释时会出现问题 因此尚未加载关闭缩放级别 这就是用户点击保存后我正在做的事情 将布尔值 saving 设置为 true 居中并放大注释 无动画 当调用mapVi
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • UISplitViewController - 推送模态视图

    使用 UISplitViewController 时推送模态视图的最佳实践是什么 您会从 RootViewController DetailViewController 还是直接从应用程序委托推送 理想情况下 我想要实现的功能是在基于某些条
  • 使用超类初始化器初始化类

    我有两个类 一个是另一个的子类 比如说Animal and Dog 超类有一些初始化器 比如initAnimal 子类有一些初始化器 比如initDog 问题是 从编译器的角度来看 做类似的事情是完全合法的Dog adog Dog allo
  • 为什么 Xcode 4 不会对我未完整实现 UITableViewDataSource 协议发出警告?

    如果我在 Xcode 中使用以下代码声明并不完全实现我自己的协议 一些协议 h protocol SomeProtocol
  • MPMusicPlayerController 和 setNowPlayingItem

    我在用着MPMusicPlayerController 特别是与setNowPlayingItem协议 它是为了cydia 但我在制作时遇到了一些问题和理论的警告 似乎某些协议和方法不起作用 我收到如下警告 Tweak xm 177 war
  • UIView 子类不会自动调整大小

    我一直在寻找有关调整大小的背景信息 但找不到太多 我知道我需要设置autoresizesSubviews在超级视图和autoresizingMask在子视图上 我已经这样做了 并且我的 UIImageViews 正确调整了大小 但我的自定义
  • 如何检测Retina高清显示屏?

    UIScreen有一个新的 nativeScaleiOS 8 中的属性 但文档没有提及它 property nonatomic readonly CGFloat nativeScale 还有一个scale属性 但文档说它是 2 用于视网膜显
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • Objective C 如何将文本字段添加到导航栏中

    我正在尝试将文本字段添加到导航栏中 但它没有显示在模拟器中 我在 viewdidload 中按如下方式执行 UITextView textField UITextView alloc initWithFrame CGRectMake 0 0
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 将 CALayer 旋转 90 度?

    如何旋转CALayer90度 我需要旋转所有内容 包括子图层和坐标系 Obj C theLayer transform CATransform3DMakeRotation 90 0 180 0 M PI 0 0 0 0 1 0 Swift
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • 如何通过辅助功能 API 获取当前所选文本的全局屏幕坐标。

    我需要帮助来了解字典应用程序如何在任何应用程序上按 CMD CTRL D 时显示所选文本的以下弹出对话框 我想实施 我的可可应用程序具有相同的功能 我的应用程序将在后台运行 并显示有关所选文本的一些热键的建议 我已经实现了热键捕获 我只需要

随机推荐

  • C++ 模板到模板参数

    最近我正在测试一些 C 模板代码 我发现了一个令人难以置信的错误 根据我在互联网上特别是 stackoverflow 上的研究 这段代码是完全有效的 但是编译器会引发编译时错误 错误位于代码下方 Code template
  • 需要每页 10 行,同时绑定到中继器

    我有一个中继器 它绑定到一个有 500 行的数据源 我不想用它进行分页 很简单 当行到达中继器时 它们会向下生长 所以 假设我有 10 页 每页在浏览器打印预览中有 50 行 当我使用 ctrl p 命令打印文档时 那么 有什么办法 让我的
  • 仅按连接表最大值选择行

    我只想选择 u classno u userno 具有最大 b enddate 的行 但这不起作用 select u classno u userno b enddate from libUser u join book b on b id
  • Android 应用程序演示

    我想为我的 Android 应用程序制作一个视频演示 我知道我可以通过在屏幕前拿着摄像机进行演示并演示该应用程序 但是有没有其他方法可以做到这一点 例如 Windows 版 JingProject 您可以在视频中记录屏幕上的活动 有没有一个
  • 如何在 iOS 中设置 NSAttributedString 中的属性?

    我试图在 iOS 中设置 NSAttributedString 臭名昭著的 NSFontAttributeName 属性 但它似乎不起作用 首先 似乎没有为 iOS 定义任何 NS 常量 我在某处读到我可以通过传递来解决它 相反 CoreT
  • 如何为“start_date”列和“end_date”列中的每一行创建 pandas.date_range() ?

    我有一个像这样的 df id start date end date price 1 2020 10 01 2020 10 3 1 1 2020 10 03 2020 10 4 1 2 2020 10 04 2020 10 6 2 3 20
  • Google App Engine 上的 Jsf

    虽然我已经完成了本教程中的所有操作http www mkyong com google app engine google app engine jsf 2 example 有时 当我刷新 加载视图时 它会抛出异常 只有当我在本地运行它时才
  • 从用户 IP 地址获取位置

    我正在尝试从使用的 IP 地址获取位置 关于如何做到这一点有很多主题 我真的像这个 它有效并且非常清晰 示例中使用的 IP 地址找到了德国某处的位置 但是当我使用我的 IP 地址 192 168 0 7 时 一切都显示为未知 当网站仅在线时
  • 当我使用管道时,如何让平均函数发挥作用?

    这可能是一个简单的问题 但我在使用 dplyr 使均值函数正常工作时遇到困难 以 mtcars 数据集为例 如果我输入 data mtcars mtcars gt select mpg gt mean 我收到 警告消息 在mean defa
  • 在Python中对字符串列表进行排序[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Python 中对字符串列表进行排序 如何在 Python 中按字母顺序对 unicode 字符串进行排序 我有一个字符串列表list并想按字母顺序排序 当我打电话时list sort 列表的
  • 无法将文本值上传到 mysql

    每次我提交网站表单时 它只创建一个新的ID 但所有其他值都是空的 我该怎么办
  • 如何通过android中的软键盘以编程方式将我的EditText输入限制为一些特殊字符,例如反斜杠(/),tild(〜)等

    我正在开发键盘应用程序 但遇到问题 我想以编程方式限制 阻止 android 中 EditText 中软键盘的一些特殊字符 那么 有什么方法可以限制 android 中编辑文本中的任何特殊字符输入吗 试试这个可能对你有用 public cl
  • 是否可以将 Redshift 集群恢复到另一个 VPC?

    我正在尝试将现有 Redshift 数据库从一个 AWS 账户移动到另一个以下账户如何将 Amazon Redshift 集群的所有权转移到其他 AWS 账户 我已成功创建旧数据库的快照并授予新帐户访问它的权限 两个账户有不同的 VPC 当
  • Telegram bot webhook 将用户标识符 id 返回为 null

    我正在开发一个 telegram 机器人 并设置一个 webhook 将用户的聊天 id 存储到我的 laravel 应用程序的数据库中 我之前得到了聊天 ID 但今天 我得到了 NULL 我正在使用 ngok for https 来与 w
  • Dart - 参数类型“String”无法分配给参数类型“String”

    我的代码非常简单 typedef GenericCallback void Function
  • CakePHP 2.0:CakeEmail 的挫败感

    在 Cake 1 3 中 电子邮件组件做了它应该做的事情 2 0 中新的 Cake Email 类令人沮丧 没有发送电子邮件 没有错误 模糊的文档 我已经尝试了所有可能的变体 尝试了我的 SMTP Mail 和 Gmail 但没有任何反应
  • 将 char[] 转换为 byte[]

    我想在Java中将字符数组转换为字节数组 有哪些方法可以进行这种转换 无需创建即可转换String object import java nio CharBuffer import java nio ByteBuffer import ja
  • RouteData.Values 保持为空

    我的路线代码如下所示 RouteTable Routes MapPageRoute IDP Person IDP Person aspx 现在我想获取表单上的数据 通常它的工作原理如下 int id Convert ToInt32 Page
  • SQLException:字符串或二进制数据将被截断

    我有一个 C 代码 可以批量执行大量插入语句 在执行这些语句时 我收到 字符串或二进制数据将被截断 错误和事务回滚 为了找出是哪个插入语句导致了这个问题 我需要在 SQLServer 中一项一项地插入 直到遇到错误 是否有聪明的方法可以使用
  • NSNotificationCenter 与委托(使用协议)?

    它们各自的优点和缺点是什么 我应该在哪里具体使用它们 这里的经验法则是有多少客户希望收到事件通知 如果它主要是一个对象 例如 关闭视图或对单击的按钮进行操作 或对失败的下载做出反应 那么您应该使用委托模型 如果您发出的事件可能同时引起许多对