Using Swift With Cocoa And OC - GaoZhenWei/SwiftLearning GitHub Wiki
1. OC中的宏定义是如何导入到Swift中的
Swift不支持宏定义,那么OC文件中定义的宏是如何转换到Swift中的呢?主要转化如下:
- OC中使用
#define
定义的简单的宏,在Swift中变成了全局的let
常量:
#define kSsqTrendGridWidth 24.5
被转化成了Swift的:
let kSsqTrendGridWidth = 24.5
- OC中复杂的包含参数的宏定义__不能__被导入到Swift中:
#define kSsqHeaderLineColor [UIColor colorWithRed:0.84 green:0.80 blue:0.78 alpha:1.0]
对于这种情况,解决方案是:在Swift中定义成一个func
来代替:
func kSsqHeaderLineColor() -> UIColor {
return UIColor(red: 0.84, green: 0.80, blue: 0.78, alpha: 1.0)
}
- Swift中使用
let
定义的常量,无法在OC中使用。解决方案是:只能在OC文件中重新定义成宏