美文网首页
weakify 和 strongify

weakify 和 strongify

作者: 犯色戒的和尚 | 来源:发表于2019-05-20 01:43 被阅读0次
    #ifndef weakify
    #if __has_feature(objc_arc)
    
    #define weakify( x ) \\
    _Pragma("clang diagnostic push") \\
    _Pragma("clang diagnostic ignored \\"-Wshadow\\"") \\
    autoreleasepool{} __weak __typeof__(x) __weak_##x##__ = x; \\
    _Pragma("clang diagnostic pop")
    
    #else
    
    #define weakify( x ) \\
    _Pragma("clang diagnostic push") \\
    _Pragma("clang diagnostic ignored \\"-Wshadow\\"") \\
    autoreleasepool{} __block __typeof__(x) __block_##x##__ = x; \\
    _Pragma("clang diagnostic pop")
    
    #endif
    #endif
    
    #ifndef strongify
    #if __has_feature(objc_arc)
    
    #define strongify( x ) \\
    _Pragma("clang diagnostic push") \\
    _Pragma("clang diagnostic ignored \\"-Wshadow\\"") \\
    try{} @finally{} __typeof__(x) x = __weak_##x##__; \\
    _Pragma("clang diagnostic pop")
    
    #else
    
    #define strongify( x ) \\
    _Pragma("clang diagnostic push") \\
    _Pragma("clang diagnostic ignored \\"-Wshadow\\"") \\
    try{} @finally{} __typeof__(x) x = __block_##x##__; \\
    _Pragma("clang diagnostic pop")
    
    #endif
    #endif
    

    相关文章

      网友评论

          本文标题:weakify 和 strongify

          本文链接:https://www.haomeiwen.com/subject/rraczqtx.html