iOS 開發常用宏

來源:互聯網
上載者:User

iOS 開發常用宏

#define NavigationBar_HEIGHT 44#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)#define SAFE_RELEASE(x) [x release];x=nil#define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]#define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])  #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0]) #define BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0]//use dlog to print while in debug model#ifdef DEBUG#   define DLog(fmt, ...) NSLog((@%s [Line %d]  fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);#else#   define DLog(...)#endif#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)#if TARGET_OS_IPHONE//iPhone Device#endif#if TARGET_IPHONE_SIMULATOR//iPhone Simulator#endif//ARC#if __has_feature(objc_arc)    //compiling with ARC#else    // compiling without ARC#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)#define USER_DEFAULT [NSUserDefaults standardUserDefaults]#define ImageNamed(_pointer) [UIImage imageNamed:[UIUtil imageName:_pointer]]#pragma mark - common functions #define RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }#pragma mark - degrees/radian functions #define degreesToRadian(x) (M_PI * (x) / 180.0)#define radianToDegrees(radian) (radian*180.0)/(M_PI)#pragma mark - color functions #define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]#define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]#define ITTDEBUG#define ITTLOGLEVEL_INFO     10#define ITTLOGLEVEL_WARNING  3#define ITTLOGLEVEL_ERROR    1#ifndef ITTMAXLOGLEVEL#ifdef DEBUG    #define ITTMAXLOGLEVEL ITTLOGLEVEL_INFO#else    #define ITTMAXLOGLEVEL ITTLOGLEVEL_ERROR#endif#endif// The general purpose logger. This ignores logging levels.#ifdef ITTDEBUG  #define ITTDPRINT(xx, ...)  NSLog(@%s(%d):  xx, __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)#else  #define ITTDPRINT(xx, ...)  ((void)0)#endif// Prints the current method's name.#define ITTDPRINTMETHODNAME() ITTDPRINT(@%s, __PRETTY_FUNCTION__)// Log-level based logging macros.#if ITTLOGLEVEL_ERROR <= ITTMAXLOGLEVEL  #define ITTDERROR(xx, ...)  ITTDPRINT(xx, ##__VA_ARGS__)#else  #define ITTDERROR(xx, ...)  ((void)0)#endif#if ITTLOGLEVEL_WARNING <= ITTMAXLOGLEVEL  #define ITTDWARNING(xx, ...)  ITTDPRINT(xx, ##__VA_ARGS__)#else  #define ITTDWARNING(xx, ...)  ((void)0)#endif#if ITTLOGLEVEL_INFO <= ITTMAXLOGLEVEL  #define ITTDINFO(xx, ...)  ITTDPRINT(xx, ##__VA_ARGS__)#else  #define ITTDINFO(xx, ...)  ((void)0)#endif#ifdef ITTDEBUG  #define ITTDCONDITIONLOG(condition, xx, ...) { if ((condition)) {                                                   ITTDPRINT(xx, ##__VA_ARGS__);                                                 }                                               } ((void)0)#else  #define ITTDCONDITIONLOG(condition, xx, ...) ((void)0)#endif#define ITTAssert(condition, ...)                                       do {                                                                          if (!(condition)) {                                                             [[NSAssertionHandler currentHandler]                                              handleFailureInFunction:[NSString stringWithUTF8String:__PRETTY_FUNCTION__]                                 file:[NSString stringWithUTF8String:__FILE__]                              lineNumber:__LINE__                                                              description:__VA_ARGS__];                                 }                                                                       } while(0)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.