【发布时间】:2011-06-12 01:48:34
【问题描述】:
您可以像这样将函数声明为内联:
#ifdef DEBUG
void DPrintf(NSString *fmt,...);
#else
inline void DPrintf(NSString *fmt,...) {}
#endif
这样,当您不在 DEBUG 中时,该函数不会产生任何成本,因为它是经过优化和内联的。如果你想拥有相同的东西,但要使用类方法怎么办?
我的班级是这样声明的:
@interface MyClass : NSObject {
}
+ (void)DPrintf:(NSString *)format, ...;
// Other methods of this class
@end
我想将 'DPrintf' 转换为类似于 inline 的内容,这样调用该方法就不会产生任何费用。
但我不能这样做:
inline +(void)DPrintf:(NSString *)format, ...; {}
如何为非调试编译关闭一个类的零成本静态方法?
【问题讨论】:
标签: objective-c methods inline