Objective-C方法或编译器指令,强制类文件包含一个方法而不添加协议



我有一个自定义的单例MyColors类,可以同时轻松地在许多UIViewController中更改某些按钮的颜色。

我把#import "MyColors.h"放在每一个类中,我需要得到一个按钮的颜色。

一切都很完美,并且在MyColors中设置了一个颜色值,该颜色会正确地应用到我想要的地方。

现在,我想活着改变颜色。所以我发送了一个名为"COLORS_CHANGED"NSNotification

所以每个班都会注意到这一点,并立即应用颜色。

我想做的是:

强制XCode提醒我,包括MyColors.h.m文件也必须包括用于观察的colorsChanged方法。因此,这将防止我忘记添加观察员

OR:

MyColors.h中添加Category之类的东西来做这种事情。。。

我不想做的事:

我不想创建一个协议,并将其作为委托添加到包括MyColors.h的每个.m文件的头文件中。因为我也可以忘记。。如果没有,这将是当然的方式。。。

因此,我正试图找到一种Objective-C方法来实现这一点,或者一种与XCode协同工作的编译器方法来实现此目的。

感谢您分享您的想法。

更新:我将颜色值用于任何需要颜色的东西,而不仅仅是按钮。

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

祝你好运,

最新更新