那些精妙的宏,持续收集
2016-10-21 本文已影响14人
fallrainy
/**
* WMF_SAFE_KEYPATH([NSString new], lowercaseString); //< @"lowercaseString"
* WMF_SAFE_KEYPATH([NSString new], fooBar); //< compiler error!
* 利用编译器检查特性获得keypath
*/
#define WMF_SAFE_KEYPATH(obj, keyp) ((NO, (void)obj.keyp), @#keyp)
/**
* if(block){
* block(param1,param2) ==> BLOCK_EXEC(block,param1,param2)
* }
* 简化执行block
*/
#define BLOCK_EXEC(block, ...) if (block) { block(__VA_ARGS__); };