swift中的宏定义

作者: 天蚕 | 来源:发表于2016-03-09 15:51 被阅读11597次

swift中是不能使用宏定义语法的,但是因为命名空间的缘故,我们可以给我们的项目添加一个空的Const.swift文件,在其中,我们将原本oc中不需要接受参数的宏,定义成let常量,将需要接受参数的宏定义成函数即可,由于我们的整个项目共享命名空间,我们就可以在项目内的任何地方直接使用Const.swift中定义的这些公共的常量和函数
1、没有参数的宏

//oc中的宏定义
#define kIOS7   [UIDevice currentDevice].systemVersion.doubleValue>=7.0 ? 1 :0
#define kIOS8   [UIDevice currentDevice].systemVersion.doubleValue>=8.0 ? 1 :0
#define kScreenHeight     [UIScreen mainScreen].bounds.size.height
#define kScreenWidth      [UIScreen mainScreen].bounds.size.width
//转换成swift的写法
let kIOS7 = Double(UIDevice().systemVersion)>=7.0 ? 1 :0
let kIOS8 = Double(UIDevice().systemVersion)>=8.0 ? 1 :0

let kScreenHeight = UIScreen.mainScreen().bounds.size.height
let kScreenWidth = UIScreen.mainScreen().bounds.size.width

2、接收参数的宏

//oc写法
#define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1]
//swift中的写法
func RGBCOLOR(r:CGFloat,_ g:CGFloat,_ b:CGFloat) -> UIColor
{
    return UIColor(red: (r)/255.0, green: (g)/255.0, blue: (b)/255.0, alpha: 1.0)
}

相关文章

  • swift&&OC

    宏定义 OC中的宏定义 swift中的宏定义 OC中宏定义的方式,在swift中是不可用的,在swift中,宏定义...

  • Swift 宏定义与代码标记

    Swift中的”宏” 写Objective-C的时候常常会用到各种宏定义,但是Swift中貌似没有宏的这种定义,更...

  • 宏定义 define

    // 宏定义 define // Swift 中宏定义被去除了,取代的是 let 或者 get 属性 // 例如 ...

  • Swift-OC混编总结

    一、swift怎么用oc定义的宏?1、在swift中,能直接使用定义为常量的宏,不能使用带有方法调用的宏,也不能使...

  • swift宏定义与枚举

    swift中的枚举: swift中的宏定义: 注:public可加可不加 如果有参数:

  • OC&swift中的宏定义

    在使用OC和swift进行混编时,我们经常会需要在swift中使用OC中的宏定义,但是这些宏定义经常会提示无法找到...

  • Swift学习笔记-1:小马哥微博项目

    ** 宏定义:**Swift中没有宏,使用其他的方法替代宏的功能,创建一个Swift文件:(使用起来和宏基本一样)...

  • Swift-CommonFunctions

    Swift中没有宏定义,那么全局常量可以建立一个空的Swift文件去统一声明。 复杂的宏在Swift中则使用全局函...

  • Swift中的宏定义

    Swift中是不能使用宏定义语法的,但是因为命名空间的缘故,我们可以给我们的项目添加一个空的Const.swift...

  • swift中的宏定义

    swift中是不能使用宏定义语法的,但是因为命名空间的缘故,我们可以给我们的项目添加一个空的Const.swift...

网友评论

  • bbabc161c175:简明易懂:smile:
  • donggelaile:应该声明swift这样设置的话,横屏后kScreenHeight及kScreenWidth是不会变化的,因为是常量,只会赋值一次。OC中则会实时变化,因为不是赋值,是宏替换。
    DCherry:很好
    donggelaile:@willn :flushed:,好吧
    willn:@donggelaile
    根据你自己的实际需要去设计嘛,如果你的宏就是定义一些常用的常量可以用赋值的方式,像#define kScreenHeight [UIScreen mainScreen].bounds.size.height这个宏其实调用函数,所以你转成swift的时候也可以写成函数(就像楼主写的func RGBCOLOR),把高度返回就可以了。

本文标题:swift中的宏定义

本文链接:https://www.haomeiwen.com/subject/qvttlttx.html