iOS强弱引用宏

来源:互联网 发布:扫地机器人算法 编辑:程序博客网 时间:2024/06/03 02:42

弱引用:

#ifndef weakify

    #if DEBUG

        #if __has_feature(objc_arc)

        #define weakify(object) autoreleasepool{} __weak __typeof__(object) weak##_##object = object;

        #else

        #define weakify(object) autoreleasepool{} __block __typeof__(object) block##_##object = object;

        #endif

    #else

        #if __has_feature(objc_arc)

        #define weakify(object) try{} @finally{} {} __weak __typeof__(object) weak##_##object = object;

        #else

        #define weakify(object) try{} @finally{} {} __block __typeof__(object) block##_##object = object;

        #endif

    #endif

#endif

强引用:

#ifndef strongify

    #if DEBUG

        #if __has_feature(objc_arc)

        #define strongify(object) autoreleasepool{} __typeof__(object) object = weak##_##object;

        #else

        #define strongify(object) autoreleasepool{} __typeof__(object) object = block##_##object;

        #endif

    #else

        #if __has_feature(objc_arc)

        #define strongify(object) try{} @finally{} __typeof__(object) object = weak##_##object;

        #else

        #define strongify(object) try{} @finally{} __typeof__(object) object = block##_##object;

        #endif

    #endif

#endif

0 0
原创粉丝点击