swift 的宏定义
2015-07-07 11:28
183 查看
swift中没有了#Define这种宏定义了,可以用let来声明常量来取代,判断当前系统版本
PS:这种用let替代#define只适用于一般的常量宏,如果是表达式或者其他复杂的宏,let也无能无力
对于复杂表达式的宏,可以用全局的func函数代替,比如上面的两个系统判断,可以修改成下面的func
这样,就可以在三元表达式中使用了:
还有RGBA宏
可以写成这样:
let IS_IOS7 = (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 7.0 let IS_IOS8 = (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 8.0
PS:这种用let替代#define只适用于一般的常量宏,如果是表达式或者其他复杂的宏,let也无能无力
对于复杂表达式的宏,可以用全局的func函数代替,比如上面的两个系统判断,可以修改成下面的func
func IS_IOS7() ->Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 7.0 } func IS_IOS8() -> Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 8.0 }
这样,就可以在三元表达式中使用了:
navBar = UIView(frame: CGRectMake(0, 0, 320, IS_IOS7() ? 64:44))
还有RGBA宏
RGBA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)]
可以写成这样:
func RGBA (r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat) { return UIColor (red: r/255.0, green: g/255.0, blue: b/255.0, alpha: a) }
var theColor : UIColor = RGBA (255, 255, 0, 1)
相关文章推荐
- Apple Swift编程语言入门教程
- Swift Error fatal error: unexpectedly found nil while unwrapping an Optional value
- iOS8发展~Swift(三)UI详细解释
- swift之桥接模式
- Swift 看值类型和引用类型
- Swift教程-集合
- swift中闭包 OC中Block 解决循环引用
- Swift教程-新操作符
- Swift教程-基本类型
- IOS学习之旅-Swift-函数
- IOS学习之旅-Swift-常量、变量、字符串
- Swift 如何将数字型字符串转换成String类型 (toInt()方法) 及返回值未解包的原因
- swift 断言(assert)
- Swift高级语法学习总结(转)
- Swift基础语法学习总结(转)
- swift 之 URL编码
- Swift学习笔记系列——(3)集合类型
- 读书笔记-《Swift语言实战入门》-语法部分
- Swift 元组
- Swift高级语法学习总结