我正在尝试定义一个这样的宏:
#define LogMethod(uuid) [LogManager logString:[NSString stringWithFormat:@"%s", __PRETTY_FUNCTION__] uuid:(uuid)];
并这样称呼它:
NSString *stringUUID = [[NSUUID UUID] UUIDString];
LogMethod(stringUUID)
但是我遇到编译器错误
选择器'logString:stringUUID:'的未知类方法
似乎将stringUUID
作为字符串而不是对象的字符串传递。这样可以将对象传递给C宏吗?
答案 0 :(得分:2)
预处理器与uuid:uuid
位混淆,并将其扩展到stringUUID:stringUUID
。
尝试:
#define LogMethod(x) [LogManager logString:[NSString stringWithFormat:@"%s", __PRETTY_FUNCTION__] uuid:(x)];