我正在尝试创建代码,这会做类似的事情。
NSLogBool(self.propertyName)
并且调试器控制台中的输出将是
"PropertyName is set to YES."
我可以如何实现这一点的任何提示,而且这段代码不依赖于特定的类,即我将其作为任何类可用的函数?
答案 0 :(得分:4)
如果你需要它与任何特定的类分离,使用预处理器和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等),这些标题对于编译单元是可见的,它可以自由使用而不必依赖于类
答案 1 :(得分:1)
在您的常规常量文件或项目中的MACRO
文件中定义此.pch
。
#define NSLogBool(status) NSLog(@"%@",(status)?@"YES":@"NO")
然后只需使用以下
检查状态日志BOOL status = NO;
NSLog(@"%@",(status)?@"YES":@"NO");
NSLogBool(status);
status = YES;
NSLogBool(status);