#ifndef Public_h
#define Public_h
// 1.判別能否為IOS7
#define IOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0)
#define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
// 2.取得RGB顏色
#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
#define RGB(r, g, b) RGBA(r, g, b, 1.0f)
// 隨機色
#define RandomColor RGB(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256))
// 3.能否為4inch
#define fourInch ([UIScreen mainScreen].bounds.size.height == 568)
// 4.屏幕大小尺寸
#define screen_width [UIScreen mainScreen].bounds.size.width
#define screen_height [UIScreen mainScreen].bounds.size.height
//重新設定view的Y值
#define setFrameY(view, newY) view.frame = CGRectMake(view.frame.origin.x, newY, view.frame.size.width, view.frame.size.height)
#define setFrameX(view, newX) view.frame = CGRectMake(newX, view.frame.origin.y, view.frame.size.width, view.frame.size.height)
#define setFrameH(view, newH) view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, newH)
#define setFrameW(view, newW) view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, newW, view.frame.size.height)
//取view的坐標及長寬
#define W(view) view.frame.size.width
#define H(view) view.frame.size.height
#define X(view) view.frame.origin.x
#define Y(view) view.frame.origin.y
#define ViewBottomY(view) Y(view)+H(view)
#define ViewWidthX(view) X(view)+W(view)
//5.常用對象
#define APPDELEGATE ((AppDelegate *)[UIApplication sharedApplication].delegate)
#define APP_TOPWIMDOW [[UIApplication sharedApplication].Windows lastObject]
//重寫NSLog,Debug形式下打印日志和以後行數
#if DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"line%d content:%s\n",__LINE__,[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
//fprintf(stderr,"\nfunction:%s line:%d content:%s", __FUNCTION__, __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(FORMAT, ...) nil
#endif
//----------------------其他----------------------------
// View 圓角和加邊框
#define ViewBorderRadius(View, Radius, Width, Color)\
\
[View.layer setCornerRadius:(Radius)];\
[View.layer setMasksToBounds:YES];\
[View.layer setBorderWidth:(Width)];\
[View.layer setBorderColor:[Color CGColor]]
// View 圓角
#define ViewRadius(View, Radius)\
\
[View.layer setCornerRadius:(Radius)];\
[View.layer setMasksToBounds:YES]
// 能否iPad #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) // 能否iPad #define someThing (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)? ipad: iphone //獲取零碎版本 #define IOS_VERSION [[UIDevice currentDevice] systemVersion] floatValue] #define CurrentSystemVersion [UIDevice currentDevice] systemVersion]//方正黑體簡體字體定義 #define FONT(F) [UIFont fontWithName:@"FZHTJW--GB1-0" size:F]
#endif /* Public_h */
以及單例形式
// .h文件的完成 #define SingletonH(methodName) + (instancetype)shared##methodName; // .m文件的完成 #if __has_feature(objc_arc) // 是ARC #define SingletonM(methodName) \ static id _instace = nil; \ + (id)allocWithZone:(struct _NSZone *)zone \ { \ if (_instace == nil) { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instace = [super allocWithZone:zone]; \ }); \ } \ return _instace; \ } \ \ - (id)init \ { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instace = [super init]; \ }); \ return _instace; \ } \ \ + (instancetype)shared##methodName \ { \ return [[self alloc] init]; \ } \ + (id)copyWithZone:(struct _NSZone *)zone \ { \ return _instace; \ } \ \ + (id)mutableCopyWithZone:(struct _NSZone *)zone \ { \ return _instace; \ } #else // 不是ARC #define SingletonM(methodName) \ static id _instace = nil; \ + (id)allocWithZone:(struct _NSZone *)zone \ { \ if (_instace == nil) { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instace = [super allocWithZone:zone]; \ }); \ } \ return _instace; \ } \ \ - (id)init \ { \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ _instace = [super init]; \ }); \ return _instace; \ } \ \ + (instancetype)shared##methodName \ { \ return [[self alloc] init]; \ } \ \ - (oneway void)release \ { \ \ } \ \ - (id)retain \ { \ return self; \ } \ \ - (NSUInteger)retainCount \ { \ return 1; \ } \ + (id)copyWithZone:(struct _NSZone *)zone \ { \ return _instace; \ } \ \ + (id)mutableCopyWithZone:(struct _NSZone *)zone \ { \ return _instace; \ } #endif //Singleton.h
其中這個單例形式先在UserInfoModel.h中SingletonH(UserInfoModel);再在.m中SingletonM(UserInfoModel);
初始化賦值
//UserInfoModel是個單例,此處初始化後,數據會不斷隨使用順序的啟動而存在 UserInfoModel *userInfoModel = [UserInfoModel mj_objectWithKeyValues:responseData.responSEObject[0]];//其中mj_objectWithKeyValues是mj辦法的其中一種,概況請看自己另一篇文章引見常用mj調用獲取單例中的值,比方獲取id[UserInfoModel sharedUserInfoModel].ID
【iOS開發 常用宏定義】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!