其實羞福,swift并不支持宏定義,實質(zhì)上是一些全局常量和函數(shù)绎狭,所以我們可以通過這個途徑實現(xiàn)類似于OC中的宏定義,以減少項目中代碼的冗余褥傍。
直接上解決辦法:
新建一個swift文件儡嘶,類似與OC中的pch文件,然后將 “import Foundation” 改為 “import UIKit”恍风,然后:
1)OC中宏定義不帶參數(shù):直接修改為用 let修飾 的常量
2)OC中宏定義帶參數(shù):可以改寫成帶參數(shù)的函數(shù)
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
}