我正在尝试创建代码,它会做这样的事情。
NSLogBool(self.propertyName)
调试器控制台中的输出将是
"PropertyName is set to YES."
关于如何实现这一点的任何提示,并且此代码将不依赖于特定类,即我会将其作为任何类都可以使用的函数?
我正在尝试创建代码,它会做这样的事情。
NSLogBool(self.propertyName)
调试器控制台中的输出将是
"PropertyName is set to YES."
关于如何实现这一点的任何提示,并且此代码将不依赖于特定类,即我会将其作为任何类都可以使用的函数?
如果您需要将它与任何特定类分离,使用预处理器和 C 是您最好的选择。像这样的东西应该可以正常工作。
#define NSBOOLLog(x) CFILogBoolean(#x, x)
extern void CFILogBoolean(char *propertyName, BOOL val);
void CFILogBoolean(char *propName, BOOL val) {
printf("%s is set to %s", propName, (val ? "YES" : "NO"));
}
只要将该 extern 声明放入对您的编译单元可见的标头(可能是实用标头,甚至是一组通用的 typedef 等)中,就可以自由使用它而不必依赖于类。
MACRO
在您的通用常量文件或项目中的文件中定义它.pch
。
#define NSLogBool(status) NSLog(@"%@",(status)?@"YES":@"NO")
然后只需使用以下命令检查状态日志
BOOL status = NO;
NSLog(@"%@",(status)?@"YES":@"NO");
NSLogBool(status);
status = YES;
NSLogBool(status);