iOS开发-常见宏定义

有些时候,我们需要将代码简洁化,这样便于读代码。我们可以将一些不变的东东抽取出来,将变化的东西作为参数。定义为宏,这样在写的时候就简单多了。

下面例举了一些常用的宏定义和大家分享:

1. 判断设备的操作系统是不是ios7
1.#define IOS7   (  [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] )

2. 判断当前设备是不是iPhone5
1.#define kScreenIphone5    (([[UIScreen mainScreen] bounds].size.height)>=568)

3.获取当前屏幕的高度
1.#define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height)

4.获取当前屏幕的宽度
1.#define kMainScreenWidth  ([UIScreen mainScreen].applicationFrame.size.width)

5.获得RGB颜色
1.#define SMSColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]

6..自定义Log

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

7.单例

01.// @interface
02.#define singleton_interface(className)
03.+ (className *)shared##className;
04. 
05. 
06.// @implementation
07.#define singleton_implementation(className)
08.static className *_instance;
09.+ (id)allocWithZone:(struct _NSZone *)zone
10.{
11.static dispatch_once_t onceToken;
12.dispatch_once(&onceToken, ^{
13._instance = [super allocWithZone:zone];
14.});
15.return _instance;
16.}
17.+ (className *)shared##className
18.{
19.static dispatch_once_t onceToken;
20.dispatch_once(&onceToken, ^{
21._instance = [[self alloc] init];
22.});
23.return _instance;
24.}

//用于判断是否已经登陆

#define isLongin [kDocumentPath stringByAppendingString:@"/islongIn.plist"]

#define controllerw [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES).firstObject stringByAppendingString:@"/controllerw"]

#define cancelOrderpath  [kDocumentPath stringByAppendingString:@"/cancelOrderpath"]

//用于临时保存当前的位置信息

#define localAddressInfo [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES).firstObject stringByAppendingString:@"/localAddressInfo"]

#define userInfoo [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES).firstObject stringByAppendingString:@"/userInfo.pliist"]

//保存历史联系人

#define hisLianxiren [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,  NSUserDomainMask,YES).firstObject stringByAppendingString:@"/hisLiawedwednddewdf"]

//保存订单编号

#define saveorderNO [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,  NSUserDomainMask,YES).firstObject stringByAppendingString:@"/orderNO"]

//保存订单类型

#define saveorderNOtype [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,  NSUserDomainMask,YES).firstObject stringByAppendingString:@"/orderNOtype"]

//保存登陆返回信息的地址

#define klongInInfoPath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES).firstObject stringByAppendingString:@"/localInfo.plist"]

//保存历史搜索记录到本地

#define saveHistorySearchRecord [kDocumentPath stringByAppendingString:@"/HistorySearchRecord.plist"]

//临时保存选定地点到本地

#define saveTemporarySearchRecord [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES).firstObject stringByAppendingString:@"/TemporarySearchRecordlocalInfo.plist"]

//起点坐标

#define savestarTemporarySearchRecord [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES).firstObject stringByAppendingString:@"/starpoint.plist"]

#define ColorGray [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1]

#define kNavigationBarText   self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:kRGBColor(255, 212, 10),NSFontAttributeName : [UIFont boldSystemFontOfSize:18]};

#define kTintColor  [UIColor colorWithRed:253/255.0 green:208/255.0 blue:11/255.0 alpha:1.0]

/** 导航栏题目文字大小 */

#define kNaviTitleFontSize   20.0

/** 导航栏题目文字颜色 */

#define kNaviTitleColor     [UIColor colorWithRed:250/255.0 green:190/255.0 blue:1/255.0 alpha:1.0]

#define kViewBackGroundColor    [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.0]

//通过RGB设置颜色

#define kRGBColor(R,G,B)        [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:1.0]

#define kWindowH   [UIScreen mainScreen].bounds.size.height //应用程序的屏幕高度

#define kWindowW    [UIScreen mainScreen].bounds.size.width  //应用程序的屏幕宽度

#define kAppDelegate ((AppDelegate*)([UIApplication sharedApplication].delegate))

#define kStoryboard(StoryboardName)     [UIStoryboard storyboardWithName:StoryboardName bundle:nil]

//通过Storyboard ID 在对应Storyboard中获取场景对象

#define kVCFromSb(storyboardId, storyboardName)     [[UIStoryboard storyboardWithName:storyboardName bundle:nil] \

instantiateViewControllerWithIdentifier:storyboardId]

//移除iOS7之后,cell默认左侧的分割线边距

#define kRemoveCellSeparator \

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{\

cell.separatorInset = UIEdgeInsetsZero;\

cell.layoutMargins = UIEdgeInsetsZero; \

cell.preservesSuperviewLayoutMargins = NO; \

}

//Docment文件夹目录

#define kDocumentPath NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject

#define SCREEN_FRAME ([UIScreen mainScreen].applicationFrame)

#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)

#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)

#define ColorWhite [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1]

#define ColorGray [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1]

#define ColorOrange [UIColor colorWithRed:254/255.0 green:216/255.0 blue:0.0 alpha:1]

#define ColorBlue [UIColor colorWithRed:58/255.0 green:225/255.0 blue:1.0 alpha:1]

#define ColorBlack [UIColor colorWithRed:17/255.0 green:17/255.0 blue:7/255.0 alpha:1]

#define ColorLine [UIColor colorWithRed:220/255.0 green:220/255.0 blue:220/255.0 alpha:1]

#define ColorText [UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1]

#define ColorTextSelect [UIColor colorWithRed:248/255.0 green:152/255.0 blue:0/255.0 alpha:1]

#define ColorBigText [UIColor colorWithRed:254/255.0 green:216/255.0 blue:3/255.0 alpha:1]

#define ColorBlackText [UIColor colorWithRed:45/255.0 green:45/255.0 blue:45/255.0 alpha:1]

#define Font(a) [UIFont fontWithName:@"Helvetica" size:a]

#define sysFont(a) [UIFont systemFontOfSize:a]

#define ISLOGIN @"loginStyle"

#define loca  [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,  NSUserDomainMask,YES).firstObject stringByAppendingString:@"/local.plist"]

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)

#define SCREEN_WIDTHh ([[UIScreen mainScreen] bounds].size.width)

#define SCREEN_HEIGHTt ([[UIScreen mainScreen] bounds].size.height)

#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTHh, SCREEN_HEIGHTt))

#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHTt))

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)

#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)

#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)

#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)

#endif

时间: 2024-10-24 12:57:52

iOS开发-常见宏定义的相关文章

iOS开发笔记--宏定义的黑魔法 - 宏菜鸟起飞手册

宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多.但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加.如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身可能并不漂亮优雅XD).但是因为宏定义对于很多人来说,并不像业务逻辑那样是每天会接触的东西.即使是能偶尔使

iOS开发常用宏定义

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #78492a } span.s1 { } span.s2 { font: 14.0px "PingFang SC" } // 加载本地xib #define kMainBundleLoadXib(xi

iOS开发常见的宏定义(实用)

iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便. 做了一些分类和注释,可以根据自己习惯再添加或者删除或者修改这些宏进行使用. #ifndef MacroDefinition_h #define MacroDefinition_h //AppDelegate #define APPDELEGATE [(AppDelegate*)[UIApplic

iOS开发——常用宏的定义

有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios71.#define IOS7   (  [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 判断当前设备是不是iPhone51.#define kScreenIphone5    (([[UIScr

IOS开发之宏的深度学习(转)

宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译 优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似 乎对宏的使用和依赖并不多.但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加. 如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能 (虽然宏本身可能并不漂亮优雅XD).但是因为宏定义对于很多人来说,并不像业务逻辑那样是每天会接触的东西.即使是

ios开发-常见的项目文件介绍

一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要用来放依赖的框架 3.test文件夹是用来做单元测试的 4.常用的文件夹(项目名称文件夹) (1)XXXinfo.plist文件(在该项目中为  01-常见文件-Info.plist) 1)简单说明 是配置文件,该文件对工程做一些运行期的配置,非常重要,不能删除. 在旧版本xcode创建的工程中,这个配置文件的名字就叫做info.pli

iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)

[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright (c) 2015年 beyond.com All rights reserved. // 不一定要用继承,可以使用分类 #import MyScrollView.h #import CoView.h @implementation MyScrollView - (void)touchesBegan

iOS技巧,宏定义

1.NSlog  发布后不打印 #ifdef DEBUG// 如果有DEBUG这个宏就编译下面一句代码 #define DDLog(...) NSLog(__VA_ARGS__) #else // 如果没有DEBUG这个宏就编译下面一句代码 #define DDLog(...) #endif 2.三方库及其他整理 1.?AFNetworking   HTTP 网络请求库   2.?SDWebImage 图片缓存 3.?MBProgressHUD 加载中展示 4.MMDrawerControlle

【编程基础】C语言常见宏定义

我们在使用C语言编写程序的时候,常常会使用到宏定义以及宏编译指令,有的可能比较常用,有的可能并不是很常用,是不是所有的C语言宏定义以及宏指令你都清楚呢? 指令 用途详细介绍 # 空指令,无任何效果 #include 包含另外一个文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义,则编译下面代码 #elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其