我想将代码中的任何NSLog
视为错误。该行应该是Xcode中的编译时错误。就像启用ARC的项目中release
的使用被视为错误一样。
答案 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
失败,编译将失败。