Objective-c 多播委托

2023-12-19

我在 xcode 中创建新的选项卡式视图项目,在 appdelegate 中我创建了一个协议

.h file

@protocol myProtocol <NSObject>
-(void)myProtocolMethodOne;
@end
.
.
.
@property (weak) id<myProtocol> mypDelegate;

.m file

@synthesize mypDelegate;
.
.
.
//Inside didFinishLaunchingWithOptions
[mypDelegate myProtocolMethodOne];

在firstViewController和secondViewController中(两者都显示为两个不同的选项卡)我在两者中都这样做了

AppDelegate *ad = (AppDelegate*)[[UIApplication sharedApplication]delegate];
    [ad setMypDelegate:self];
.
.
.
-(void)myProtocolMethodOne
{
    NSLog(@"1st VC");
    [[self tabBarItem]setBadgeValue:@"ok"];
}

代码工作正常,但只有 secondaryViewController 响应。

我正在寻找一种使用委托而不是通知的广播和监听器类型的机制。

我搜索了很多,但确实找到了任何解决方案,除了this https://github.com/robbiehanson/XMPPFramework/wiki/MulticastDelegate但代码对我来说是提前理解的,所以我通过从一个简单的项目开始逐步理解这一点。请帮助我解决这个问题。两个视图控制器如何同时响应委托,我该怎么办?


您可以考虑类似于访问者模式的东西,而不是委托。

@interface MyVisitor : NSObject < myProtocol >

-(void)addAcceptor:(id < myProtocol >)acceptor

@end


@implementation

-(void)myProtocolMethodOne {
    [_acceptors enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *break){ 
        [obj performSelector:_sel];
    }];
}

// etc etc ... obviously you have to handle return values if you're getting these


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

Objective-c 多播委托 的相关文章

  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • XMPPFramework - 如何创建多用户聊天室?

    我如何使用XMPPFramework在iPhone中实现GroupChat 我尝试了以下代码 但房间没有创建 我如何知道房间是否创建 XMPPRoomDelegate没有被调用 当Stream断开连接时 调用handleDidLeaveRo
  • 在 Objective-C 中比较 2 个字符串

    我写了以下代码 if depSelectedIndice gt 1 comSelectedIndice gt 1 NSLog depart elemet d depSelectedIndice NSLog depart elemet d c
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 在 Swift 中从 UIScrollView 创建 PDF 文件

    我想从 UIScrollView 的内容创建一个 PDF 文件 func createPdfFromView aView UIView saveToDocumentsWithFileName fileName String let pdfD
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • 在 Objective C 的类方法中引用类本身

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • SpeechRecognizer:未选择语音识别服务

    这就是我开始我的 RecogniseListener 意图的方式 Intent intent new Intent RecognizerIntent ACTION RECOGNIZE SPEECH intent putExtra Recog
  • 如何声明一个 Class 对象,使其成为 Java 中的枚举和接口

    我有一个实用程序类 需要在通用类上工作 但必须仅限于那些枚举并实现特定接口的类 These two work Class gt enumClass Class gt enumAndInterfaceClass 对于泛型我可以成功使用它 pu
  • React组件回调实现方法有什么区别

    import React from react import ChildComponent from ChildComponent class SampleComponent extends React Component sampleCa
  • 如何在 cefsharp WPF 项目中加载扩展?

    我正在尝试在 WPF 项目中的 cefsharp 嵌入式浏览器中加载扩展 但这样做时应用程序会冻结 这是我一直在加载一个非常简单的扩展的代码 var setting new CefSettings setting RegisterExten
  • 类型不可序列化,因为它不是公共的?

    我有一个无法正确序列化的公共类 尝试时 会引发以下异常 数据协定类型 MyProject MyClass 不可序列化 因为它不是公共的 公开该类型将修复此错误 或者 您可以将其设置为内部 并使用程序集上的 InternalsVisibleT
  • 控制java调度算法

    今天我和一位有趣的受访者交谈 他坚持认为提高 Java 应用程序性能的最佳方法是重写线程调度算法 鉴于我们依赖 JVM 线程调度算法 我有理由确信这是不可能的 但我想知道是否有任何技术可以用来影响调度算法 或者如果有一个令人信服的理由这样做
  • 在此 P/Invoke 用例中正确使用 SafeHandles

    在 C 中使用本机 Dll 使用不透明句柄和内部引用计数 我有以下 P Invoke 签名 全部用 DllImport 属性装饰 DllImport somedll dll public extern IntPtr getHandleOfA
  • 等值线世界地图

    我读了很多帖子和文章 但不断出现错误 我正在尝试制作一个等值线 使用我从全球恐怖主义数据库获得的数据绘制的世界地图 我想根据击杀次数或仅根据该国家 地区的攻击次数对国家进行着色 我现在不在乎 由于拥有数据的国家太多 因此绘制任何图表来显示这
  • 通过 VIM 选择 Python 函数的最快方法是什么?

    没有任何插件可以吗 或者编辑 python 文件的最佳插件是什么 try vis直观地选择和o跳跃边缘
  • 来自工作人员的错误消息: generic::aborted: SDKharness sdk-0-1 已断开连接

    我的一项 Dataflow 作业遇到一些问题 我有时会收到此错误消息 似乎在这个错误之后 作业一直运行良好 但是 今天晚上它实际上卡住了 或者它开始缓慢地处理元素 您还可以从屏幕截图中看到 工作人员开始表现得非常奇怪 如下面屏幕截图中的 C
  • 您可以在 iPhone/iPad 上的视图之间进行转换的完整列表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • gcc execstack 标志到底允许什么情况以及它如何强制执行它?

    我这里有一些示例代码 我用它们来理解初学者 CTF 的一些 C 行为 example c include
  • 两个纬度和经度之间的行进距离

    我正在计算并给出公路旅行的两组纬度和经度之间的距离 我查看了 Google 的方向和距离矩阵 API 并且还做了很多关于SO的其他问题 但我无法找出最好的方法 您需要每次计算到大约 20 25 个位置的距离 我们正在构建一款旅行应用程序 该
  • 显示延迟的网络摄像头/摄像头流 - webrtc

    我做了一个简单的设置 获取网络摄像头 手机摄像头流并将其传递 在 html 2d 画布上绘图 但我一直无法弄清楚如何以几秒钟的延迟显示流 有点像延迟镜 我尝试玩ctx globalAlpha 0 005 但这给了我重影效果而不是 延迟 流
  • 在android中读取EditText的文本

    我正在编写一个简单的 Android 应用程序 它有一个编辑文本和一个按钮 单击按钮应显示一个警报对话框 其中包含在编辑文本中输入的文本 为此 我有以下代码 String txt Called when the activity is fi
  • EMGU QueryFrame 通过 RTSP 返回“条纹”图像

    我有一个高清网络摄像机 我试图通过 rtsp 抓取帧并使用以下代码 in Form Load Application Idle getNextFrame 和事件处理程序 private void getNextFrame object se
  • 如何删除google colab本地上传的文件?

    我正在尝试使用以下代码删除我在 Google colab 上上传的文件 from google colab import files uploaded files upload 现在如何删除该文件 例如 如果文件的名称是 sample jp
  • WorksheetFunction.Transpose 更改数据类型

    我正在使用WorksheetFunction Transpose在 VBA 中将混合日期 字符串的一维数组转换为二维数组以写入工作表 我的 Windows 区域设置设置为DMY 写回的日期有月 日切换 这个论坛里已经提到过Dates正在转换
  • 如何实现一个非常简单的文件系统?

    我想知道操作系统如何读取 写入硬盘 我想作为练习来实现一个简单的文件系统 没有可以读写文件的目录 我从哪说起呢 C C 可以解决这个问题还是我必须采用更底层的方法 一个人处理的事情是否太多了 看看保险丝 http fuse sourcefo
  • Objective-c 多播委托

    我在 xcode 中创建新的选项卡式视图项目 在 appdelegate 中我创建了一个协议 h file protocol myProtocol