【发布时间】:2014-07-24 21:31:19
【问题描述】:
是否可以定义一个宏来设置多个对象的背景颜色等属性?
例如:
#define RedColor [UIColor redColor]
#define BackgroundColor(color) [[self class] setBackgroundColor:Color(color)]
这样我就可以在以下情况下使用它:
[myLabel BackgroundColor(RedColor)];
[myButton BackgroundColor(RedColor)];
【问题讨论】:
-
[myLabel setBackgroundColor:RedColor]和[myButton setBackgroundColor:RedColor]有什么问题? -
还要检查 UIAppearance 协议 developer.apple.com/library/ios/documentation/uikit/reference/… 。可能它提供了类似于您需要的东西
-
@ahruss 这更像是一个简化的示例,但我的意思是对需要多个输入的更详细的属性(例如我自己定义的属性)使用类似的东西,所以我的代码看起来更干净一点。
-
我想我们需要更多解释你想要什么。您提出的问题的答案是肯定的,并且做类似
#define BackgroundColor(color) setBackgroundColor:color之类的事情是微不足道的,但我假设这不是您想要的,因为它除了混淆您的代码之外没有做任何事情。
标签: ios objective-c macros c-preprocessor