swift 中怎么定义宏

鄙人是个菜鸟。。最近在学习swift  

swift中  并没有#define 这样的语法  去定义一个宏 那么该怎么办呢?

在swift中 ,所有的头文件都是不需要手动去导入的,于是乎,我们可以这样去做

创建这样一个空的swift类,然后将你需要定义的宏都写在这里面

创建的空文件默认导入的是Foundation,把它直接改成UIKit就行

swift中let可以定义常量 所以用let来定义宏是可以的 ,比如你可以这样干::::

 

let SCREEN_WIDTH = UIScreen.mainScreen().bounds.size.width
let SCREEN_HEIGHT = UIScreen.mainScreen().bounds.size.height

又或是这样

let IS_IOS_9 = (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 9.0

如果想要定义一个RGB,你会发现一个let用来宏定义完全不够用,这个时候,大招来了,用一个func来定义一个宏

像是这样。。。

func RGB(r: CGFloat, g: CGFloat, b: CGFloat) -> UIColor {
    return UIColor.init(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1.0)
}


又或是这样、、、

//#234324
func RGB_16(hexString:String) -> UIColor {
    
    var cString: String = hexString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    
    if cString.characters.count < 6 {return UIColor.blackColor()}
    if cString.hasPrefix("0X") {cString = cString.substringFromIndex(cString.startIndex.advancedBy(2))}
    if cString.hasPrefix("#") {cString = cString.substringFromIndex(cString.startIndex.advancedBy(1))}
    if cString.characters.count != 6 {return UIColor.blackColor()}
    
    var range: NSRange = NSMakeRange(0, 2)
    
    let rString = (cString as NSString).substringWithRange(range)
    range.location = 2
    let gString = (cString as NSString).substringWithRange(range)
    range.location = 4
    let bString = (cString as NSString).substringWithRange(range)
    
    var r: UInt32 = 0x0
    var g: UInt32 = 0x0
    var b: UInt32 = 0x0
    NSScanner.init(string: rString).scanHexInt(&r)
    NSScanner.init(string: gString).scanHexInt(&g)
    NSScanner.init(string: bString).scanHexInt(&b)
    
    return UIColor(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: CGFloat(1))
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值