ReactiveCocoa:rac_keywordify 宏。实际需要 rac_keywordify 的目的是什么?

ReactiveCocoa: rac_keywordify macros. For what purpose rac_keywordify is actually need?

在ReactiveCocoa中有两个宏是结合使用的。

#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 所做的只是允许使用 @ 符号作为 weakifystrongify 宏前面的必需前缀。 @ 不是必需的,它是一种样式选择,可以使这些宏看起来像关键字,就像其他语言的关键字一样,例如 @try@synchronize.