iOS预编译文件设置以及常用宏记录
创建一个iOS工程的时候,为了方便,我们一般会设置大量的宏,宏我们一般会写在一个.pch文件中,然后我们需要将.pch文件的路径在工程中设置一下,以达到预编译的作用
方法一:
在Finder中找到pch文件后,直接拖到这里:Build Settings ->Apple LLVM7.0 - Language -> Prefix Header。这样设置的话,就将pch文件的位置固定了,如果将工程换个位置,就找不到pch文件了
方法二:
在Finder中找到pch文件后,直接拖到这里,别停下,还没有结束,将前面的内容删除,只留下pch名字,还有上一层的名字,然后在最前面加上$(SRCROOT),然后就结束了
例子:$(SRCROOT)/ruanjian/PrefixHeader.pch
这样的好处就是,不管你把工程移动到哪里,都可以找到pch文件
下面是一些工程中常用的宏整理:
1.屏幕宽度 #define SPScreen_W [UIScreen mainScreen].bounds.size.width
2.屏幕高度 #define SPScreen_H [UIScreen mainScreen].bounds.size.height
3.导航栏高度 #define TOP_H (SPScreen_H == 812.0?44.0f:20.0f)
4.颜色RGB #define SPRGBColor(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
5.控件位置 #define SPFrame(X,Y,W,H) CGRectMake(X,Y,W,H)
6.参照元素底部位置 #define SPGetMaxY(view) CGRectMaxY(view.frame)
7.参照元素宽度位置 #define SPGetMaxX(view.frame)
8.参照元素宽 #define SPGetWidth(view) view.frame.size.width
9.参照元素高 #define SPGetHeight(view) view.frame.size.height
10.点位置 #define SPPoint(X,y) CGPointMake(X,Y)
11.AppDelegate单例 #define SPAppDelegate ((AppDelegate*)[UIApplication sharedApplication].delegate)
12.NSUserDefaults存储数据 #define SPSetDefaults(value,key) [[NSUserDefaults standardUserDefaults] setObject:value forKey:key]
13.NSUserDefaults读取数据 #define SPReadDefaults(key) [[NSUserDefaults standardUserDefaults] objectForKey:key]
14.沙盒地址 #define SPDefaultPath NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDOmainMask,YES)[0]
15.block弱引用 #define SPSelf __weak typeof(self) weakSelf = self
16.字体大小设置 #define SPFont(n) [UIFont systemFontOfSize:n]