安全的主线程调用块定义:
#define dispatch_async_main_safe(block)\
if ([NSThread isMainThread]) {\
block();\
} else {\
dispatch_async(dispatch_get_main_queue(), block);\
}
强引用、弱引用self转换:
#ifndef weakify
#if DEBUG
#if __has_feature(objc_arc)
#define weakify(object) NSAutoreleasePool{} __weak __typeof__(object) weak##_##object = object;
#else
#define weakify(object) NSAutoreleasePool{} __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
妈蛋,简书的代码排版有点煞笔啊,逼我转移?
网友评论