其实,swift并不支持宏定义,实质上是一些全局常量和函数,所以我们可以通过这个途径实现类似于OC中的宏定义,以减少项目中代码的冗余。
直接上解决办法:
新建一个swift文件,类似与OC中的pch文件,然后将 “import Foundation” 改为 “import UIKit”,然后:
1)OC中宏定义不带参数:直接修改为用 let修饰 的常量
2)OC中宏定义带参数:可以改写成带参数的函数
OC中宏定义:
//**设备屏幕逻辑尺寸
#define kScreenWidth [[UIScreen mainScreen]bounds].size.width
#define kScreenHeight [[UIScreen mainScreen]bounds].size.height
//**判断字符窜为空宏定义
#define EMPTY_NIL_STR(str) (!str||[str isEqualToString:@""])
swift中宏定义:
import UIKit
let kScreenWidth = UIScreen.main.bounds.width
let kScreenHeight = UIScreen.main.bounds.height
func EMPTY_NIL_STR(str: String) -> Bool {
return str.isEmpty
}