1、release時,屏蔽log
#if defined (DEBUG) && DEBUG == 1#else#define NSLog(...) {};#endif
2、在主線程或在后臺執行block
#define BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)#define MAIN(block) dispatch_async(dispatch_get_main_queue(),block)
3、設備相關
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)#define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])#define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
4、區分模擬器和真機
#if TARGET_OS_IPHONE//iPhone Device#endif#if TARGET_IPHONE_SIMULATOR//iPhone Simulator#endif
5、根據是否使用ARC做不同操作
新聞熱點
疑難解答