ios - 强制类文件包含方法而不添加协议(protocol)的Objective-C方式或编译器指令?

标签 ios objective-c xcode

我有一个自定义单例 MyColors 类,可以在许多 UIViewController 中轻松更改某些按钮的颜色s 同时。
我把 #import "MyColors.h"在每节课中,我都需要获得按钮的颜色。
一切正常,并在 MyColors 中设置颜色值,该颜色正确应用于我想要的位置。
现在,我想活着改变颜色。所以我发了NSNotification有名字"COLORS_CHANGED" .
所以每个类(class)都会观察到这一点并立即应用颜色。
我想做的是:
强制 XCode 提醒我 .m包含 MyColors.h 的文件还必须包括 colorsChanged观察方法。所以,这将防止我忘记添加观察者
或:
添加类似 Category 的内容或类似的东西到MyColors.h做这种事……
我不想做的事:
我不想创建协议(protocol)并将其作为委托(delegate)添加到每个 .m 的头文件中包含 MyColors.h 的文件.因为我也可以忘记这一点。如果没有,这就是当然的方式……
因此,我正在尝试找到一种 Objective-C 方法来执行此操作,或者与 XCode 一起使用的编译器方法来执行此操作。
感谢您分享您的想法。
更新 :我将颜色值用于需要颜色的任何东西,而不仅仅是按钮。

最佳答案

在基类中实现此功能并使您的所有 UIViewController-s 都继承它。即 - 在基类中注册此通知并更改公共(public)对象的颜色,并在那里调用继承者的虚拟方法来更改其额外对象的颜色。

祝你好运,

关于ios - 强制类文件包含方法而不添加协议(protocol)的Objective-C方式或编译器指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262326/

相关文章:

javascript - 如何使用 Cordova 获取设备的铃声状态/静音状态?

ios - 从流中获取元数据的问题?

ios - iOS 界面生成器中的 float 布局?

objective-c - 如何将 libpng 与 OpenGL 一起用于 2D 游戏?

xcode - Mavericks 下的 cocoa 收据验证测试 - 问题

ios - 以编程方式检测正在使用的开发或生产推送通知证书

ios - Firebase 深层链接 Web URL 查询为空 - iOS

iphone - iOS uiwebview 回退历史控件

ios - Xcode 8 说供应配置文件具有 aps-environment 权利但导出后存档 aps-environment 丢失

ios - 修复 iOS ipa 文件(缺少代码签名证书)