Вы можете объявить функции в виде строк:
#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, ...; {}
Как можно отключить статический метод с нулевой стоимостью для класса, не требующего отладки?