我有一个自定义单例 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/