3

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

4

3 回答 3

3

尝试这个,

#define NSLog_UNAVAILABLE __attribute__((unavailable("NSLog is treated as Error.")))
FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2) NSLog_UNAVAILABLE;
于 2013-03-25T12:18:09.190 回答
1

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

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

那么也许有一些方法可以将警告变成错误。

于 2013-03-25T11:55:29.140 回答
0

如果您使用 Clang 作为编译器,则可以使用它(实际上刚刚意识到 GCC_Static_assert从 4.6 版开始也支持 C11):

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

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

于 2013-03-25T12:10:24.220 回答