用法:weakify(self) strongify(self)
#ifndef weakify#if DEBUG#if __has_feature(objc_arc)#define weakify(object) __weak __typeof__(object) weak##_##object = object;#else#define weakify(object) __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) __typeof__(object) object = weak##_##object;#else#define strongify(object) __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复制代码