IOS开发中常用到的宏定义

来源:互联网 发布:局域网控制电脑软件 编辑:程序博客网 时间:2024/05/16 12:43

=====================================

//release屏蔽NSLog

//放在.pch文件里
#ifdef DEBUG
#else
#define NSLog(...) {};
#endif

#ifdef  DEBUG
    #define WLog(...) NSLog(__VA_ARGS__)
#else
    #define WLog(...)
#endif


#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...)
#endif

=====================================
//G。C。D
#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)


=======================================

//系统版本

[[[UIDevice currentDevice] systemVersion] floatValue]


=================================

//Device
#define isRetina ([UIScreeninstancesRespondToSelector:@selector(currentMode)] ?CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen]currentMode].size) : NO)

#define iPhone5 ([UIScreeninstancesRespondToSelector:@selector(currentMode)] ?CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen]currentMode].size) : NO)

#define isPad (UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad)


==================================

//区分模拟器和真机

#if TARGET_OS_IPHONE
//iPhone Device
#endif

#if TARGET_IPHONE_SIMULATOR
//iPhone Simulator
#endif

==============================
//ARC
#if __has_feature(objc_arc)
    //compilingwith ARC
#else
    //compiling without ARC

#endif


#ifndef MB_STRONG
#if __has_feature(objc_arc)
    #define MB_STRONG strong
#else
    #define MB_STRONG retain
#endif
#endif

#ifndef MB_WEAK
#if __has_feature(objc_arc_weak)
    #define MB_WEAK weak
#elif __has_feature(objc_arc)
    #define MB_WEAK unsafe_unretained
#else
    #define MB_WEAK assign
#endif
#endif



#if __has_feature(objc_arc)
    #define MB_AUTORELEASE(exp) exp
    #define MB_RELEASE(exp) exp
    #define MB_RETAIN(exp) exp
#else
    #define MB_AUTORELEASE(exp) [exp autorelease]
    #define MB_RELEASE(exp) [exp release]
    #define MB_RETAIN(exp) [exp retain]
#endif

=========================================


//block

#if NS_BLOCKS_AVAILABLE
typedef void (^MBProgressHUDCompletionBlock)();
#endif

====================================