ReactiveCocoa:rac_keywordify宏。为什么rac_keywordify实际上需要什么?
问题描述:
在ReactiveCocoa中,有两个宏一起使用。ReactiveCocoa:rac_keywordify宏。为什么rac_keywordify实际上需要什么?
#define weakify(...) \
rac_keywordify \
metamacro_foreach_cxt(rac_weakify_,, __weak, __VA_ARGS__)
#define strongify(...) \
rac_keywordify \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Wshadow\"") \
metamacro_foreach(rac_strongify_,, __VA_ARGS__) \
_Pragma("clang diagnostic pop")
#if DEBUG
#define rac_keywordify autoreleasepool {}
#else
#define rac_keywordify try {} @catch (...) {}
#endif
可能出于什么目的实际需要rac_keywordify
任何一个解释? 我读了关于rac_keywordify
的描述,但仍然不明白。 如果有人提供例子和描述,我会非常感激。
答
全部rac_keywordify
确实允许在weakify
和strongify
宏前使用@
符号作为必需的前缀。 @
是没有必要的,这是使这些宏看起来像关键字的样式选择,像其他语言关键字一样,如@try
或@synchronize
。
谢谢。我明白了你的意思。 – 2015-02-13 07:31:28