使用NSLog作为构建错误进行处理

时间:2013-03-25 11:39:10

标签: ios objective-c xcode clang nslog

我想将代码中的任何NSLog视为错误。该行应该是Xcode中的编译时错误。就像启用ARC的项目中release的使用被视为错误一样。

3 个答案:

答案 0 :(得分:3)

试试这个,

#define NSLog_UNAVAILABLE __attribute__((unavailable("NSLog is treated as Error.")))
FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2) NSLog_UNAVAILABLE;

答案 1 :(得分:1)

您可以使用NSLog在代码中重新声明__deprecated的原型,因此任何使用它都会产生警告

FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2) __deprecated;

然后可能有一些方法可以将警告变成错误。

答案 2 :(得分:0)

如果你使用Clang作为你的编译器,你可以使用它(实际上只是从版本4.6开始实现GCC也支持C11的_Static_assert):

#define NSLog(...) _Static_assert(0, "Not allowed to use NSLog!")

如果_Static_assert失败,编译将失败。