iOS OC宏定義

APP本版號

  #define kAppVersionStr     [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]

系統(tǒng)版本號

  #define kSystemVersion     ([[UIDevice currentDevice].systemVersion floatValue])
  #define iOS7Later               (kSYSTEM_VERSION >= 7.0)
  #define iOS8Later               (kSYSTEM_VERSION >= 8.0)
  #define iOS9Later               (kSYSTEM_VERSION >= 9.0)
  
  區(qū)分版本號執(zhí)行對應(yīng)代碼
  #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0
      // 系統(tǒng)版本號大于等于8.0
  #else
      // 系統(tǒng)版本號小于8.0 
  #endif

判斷是真機(jī)還是模擬器

  #if TARGET_OS_IPHONE
      //真機(jī)
  #endif
  #if TARGET_IPHONE_SIMULATOR
      //模擬器
  #endif

屏幕尺寸

  #define kSCREEN_WIDTH            ([[UIScreen mainScreen] bounds].size.width)
  #define kSCREEN_HEIGHT           ([[UIScreen mainScreen] bounds].size.height)
  #define kSCREEN_MAX_LENGTH       (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
  #define kSCREEN_MIN_LENGTH       (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))

  #define kIS_IPAD                 (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
  #define kIS_IPHONE               (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
  #define kIS_RETINA               ([[UIScreen mainScreen] scale] >= 2.0)

  #define kIS_IPHONE_4_OR_LESS     (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
  #define kIS_IPHONE_5             (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
  #define kIS_IPHONE_6             (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
  #define kIS_IPHONE_6P            (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)

沙盒Cache路徑

#define kCachePath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]

Debug模式打印

#ifdef DEBUG
    #define NSLog(...) NSLog(@"=== log:\n%s 第%d行 \n%@\n\n", __func__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])
    #define debugMethod() NSLog(@"%s", __func__)
#else
    #define NSLog(...)
    #define debugMethod()
#endif

弱引用/強(qiáng)引用

  #define kWeakSelf(type)          __weak typeof(type) weak##type = type;
  #define kStrongSelf(type)        __strong typeof(type) type = weak##type;

block防止空回調(diào)

  #define BLOCK_EXEC(block, ...)  if (block) { block(__VA_ARGS__); }

由角度轉(zhuǎn)換弧度

  #define kDegreesToRadian(x)      (M_PI * (x) / 180.0)

由弧度轉(zhuǎn)換角度

  #define kRadianToDegrees(radian) (radian * 180.0) / (M_PI)

通過 數(shù)據(jù)總條數(shù) 和 單頁顯示條數(shù) 計(jì)算出 共需顯示多少頁

  #define kTotalPage(_totalNum, _pageSize) ((_totalNum + _pageSize - 1) / _pageSize)

常用縮寫

  #define kApplication            [UIApplication sharedApplication]
  #define kKeyWindow              [UIApplication sharedApplication].keyWindow
  #define kAppDelegate            [UIApplication sharedApplication].delegate
  #define kUserDefaults           [NSUserDefaults standardUserDefaults]
  #define kNotifCenter            [NSNotificationCenter defaultCenter]

當(dāng)前App的系統(tǒng)設(shè)置界面Url

  #define kSettingURL              [NSURL URLWithString:UIApplicationOpenSettingsURLString]

字符串排空

  #define kStringNonnull(_str)    (([_str isKindOfClass:[NSNull class]] || [_str isEqualToString:@"(null)"] || _str == nil) ? @"" : _str)

字符串是否為空

  #define kStringIsEmpty(_str)    (([_str isKindOfClass:[NSNull class]] || [_str isEqualToString:@"(null)"] || _str == nil || [_str length] < 1) ? YES : NO )

數(shù)組是否為空

  #define kArrayIsEmpty(_array)    (([_array isKindOfClass:[NSNull class]] || _array == nil || _array.count == 0) ? YES : NO)

字典是否為空

  #define kDictionaryIsEmpty(_dict)    (([_dict isKindOfClass:[NSNull class]] || _dict == nil || _dict.allKeys == 0) ? YES : NO)

空對象

  #define kObjectIsEmpty(_object)    ((_object == nil \
      || [_object isKindOfClass:[NSNull class]] \
      || ([_object respondsToSelector:@selector(length)] && [(NSData *)_object length] == 0) \
      || ([_object respondsToSelector:@selector(count)] && [(NSArray *)_object count] == 0)) \
      ? YES : NO)

顏色

  #define RGB(r,g,b)          RGBA(r, g, b, 1.0)
  #define RGBA(r,g,b,a)       [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)]
  #define COLOR_HEX(_hex)     [UIColor colorWithRed:((float)((_hex & 0xFF0000) >> 16)) / 255.0 \
                            green:((float)((_hex & 0xFF00)>> 8)) / 255.0 \
                            blue:((float) (_hex & 0xFF)) / 255.0 alpha:1.0f]
  #define COLOR_HEX0(_hex, a) [UIColor colorWithRed:((float)((_hex & 0xFF0000) >> 16)) / 255.0 \
                            green:((float)((_hex & 0xFF00)>> 8)) / 255.0 \
                            blue:((float) (_hex & 0xFF)) / 255.0 alpha:(a)]
  #define COLOR_RANDOM        RGB(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256))

  #define kCOLOR_BG            RGB(246, 246, 246)
  #define kCOLOR_Theme         RGB(73, 200, 164)
  #define kCOLOR_NavBar        COLOR_Theme
  #define kCOLOR_Line          RGB(200, 200, 200)
  #define kCOLOR_BtnNormal     COLOR_Theme
  #define kCOLOR_BtnDisabled   [COLOR_Theme colorWithAlphaComponent:0.6]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容