2015-02-12 33 views
1

在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的描述,但仍然不明白。 如果有人提供例子和描述,我會非常感激。

回答

2

全部rac_keywordify確實允許在weakifystrongify宏前使用@符號作爲必需的前綴。 @是沒有必要的,這是使這些宏看起來像關鍵字的樣式選擇,像其他語言關鍵字一樣,如@try@synchronize

+0

謝謝。我明白了你的意思。 – 2015-02-13 07:31:28