#define SDNSPredicate(key,value) \
[NSPredicate predicateWithFormat:@"#key == %@",value];
当我使用SDNSPredicate(@"hCName",@"ccc")
时,我希望hCName == "ccc"
但它会变为key == "ccc"
如何正确使用?
答案 0 :(得分:5)
如何做到对不对?
使用功能。 Macros are evil
static inline NSPredicate *SDNSPredicate(NSString *key, NSString *value) {
return [NSPredicate predicateWithFormat:@"%@ == %@", key, value];
}
答案 1 :(得分:2)
解决方案:
#define SDNSPredicate(key,value) \
[NSPredicate predicateWithFormat:@"%K == %@",key,value];