oc代码规范之宏定义

常用的宏:

  • 设备相关的宏:

//定义屏幕高度
#define ScreenHeight [UIScreen mainScreen].bounds.size.height
//定义屏幕宽度
#define ScreenWidth [UIScreen mainScreen].bounds.size.width
//定义屏幕分辨率
#define ScreenScale [UIScreen mainScreen].bounds.size.width / 320

//判断是否是4寸屏
#define IS4InchScreen  (([[UIScreen mainScreen] bounds].size.height == 568) ? YES : NO)
//判断是否3.5寸屏
#define IS35InchScreen ([[UIScreen mainScreen] bounds].size.height < 568)
//判断是否4.7寸屏
#define IS47InchScreen (([[UIScreen mainScreen] bounds].size.height == 667) ? YES : NO)
//判断是否5.5寸屏
#define IS55InchScreen (([[UIScreen mainScreen] bounds].size.height == 736) ? YES : NO)
//Tabbar高度
#define TAB_BAR_HEIGHT 49
//Nav高度
#define NAV_BAR_HEIGHT 44

//iphoneX的设备
#define IPhoneX (ScreenWidth == 375.f && ScreenHeight == 812.f ? YES : NO)
#define STATUS_BAR_HEIGHT (IPhoneX ? 44 : 20)
  • 系统相关的宏:

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

例如:SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0")
  • 单例

//h文件
#define ShareInstance_Interface(var) + (instancetype)shareInstance;

//m文件
#define ShareInstance_Implementation(var) \
+(instancetype)shareInstance{\
static var instance; \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
    if (!instance) {\
        instance = [[var alloc] init];\
    }\
}\
return instance;\
}\
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,486评论 25 709
  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,874评论 4 34
  • 读了一本阐释尼采哲学特色的一本书,钱穆写的好像是。感觉尼采想的很多事情,和我之前想的都是一样的。所谓人生的悲剧性,...
    水秋公子阅读 4,590评论 0 10
  • 亲于远方 现言己所思 语他之感悟 此与余先生所感无二 待烧水为沐,煮米为食,裁布为衣,整榻为憩。
    三千枝阅读 3,709评论 0 2
  • 男主角:夏洛,介绍:汇新大学的学长 校草 高冷 天才少年 女主角:琳丝丝,介绍:汇新大学的校花 温柔...
    冰冷的世纪阅读 1,679评论 0 0

友情链接更多精彩内容