我有一个自定义的Singleton MyColors类,可以轻松地同时在许多UIViewController中轻松更改某些按钮的颜色。
我将#import "MyColors.h"放在每个需要获取按钮颜色的类中。
一切正常,并在MyColors中设置颜色值,该颜色正确应用到了我想要的位置。
现在,我想生动地改变颜色。因此,我发送了一个名称为NSNotification"COLORS_CHANGED"
因此,每个 class 都会观察到并立即涂上颜色。
我想做的是:
强制XCode提醒我,包含.mMyColors.h文件还必须包含colorsChanged方法进行观察。因此,这将防止我忘记添加观察者
或:
Category中添加类似MyColors.h或类似内容的东西以执行此类操作...
我不想做什么:
我不想创建协议并将其作为委托添加到每个包含.mMyColors.h文件的头文件中。因为我也可以忘记那件事。如果没有,那将是当然的方法。
因此,我试图找到一种实现此目标的Objective-C方式,或与XCode配合使用的编译器方式。
感谢您分享您的想法。
更新:我将颜色值用于需要颜色的所有内容,而不仅仅是按钮。

最佳答案

在基类中实现此功能,并使所有UIViewController-s都继承它。即-在基类中为此通知进行注册并更改 public 对象的颜色,并在此为继承者调用虚拟方法以更改其额外对象的颜色。

祝好运,

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

10-16 00:46