Swift定义宏

  • 因为之前iOS的开发一直用Objective-C, 所以习惯了C语言那种宏定义方式, Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码宏替换的安全隐患, 但是也并非不能进行宏定义 -- 定义全局变量(听说类似Java)

swift中定义宏

  • 1.新建文件, 选择iOS -> Source -> Swift File
swift的.h文件
  • 2.同上, 名字你自己随心意, 毕竟不重要

  • 3.生成的会是一个.swift空文件, 默认应该会是Foundation框架, 自己修改为UIKit即可

swift.h文件
  • 4.设置宏定义
  • swift中的宏定义的意义:
    • 在swift中, 并非是预编译代码替换, 而是设置全局常量, 简单宏, 直接let 加常量名即可, 复杂的宏由于必须保证宏的代码的语句的合法性, 所以使用函数进行实现, 下面会举例说明:
简单宏定义
  • 但是这种宏定义远远不能满足我们的需要, 如果想要实现上面的那种, 通过对view.X, 获取到view.frame.origin.x的方式, 就要想其他的办法了, 因为直接let x = frame.origin.x这种方式明显不合法


    错误的宏定义

    - 就要通过函数来实现了, 把对象作为一个参数, 返回这个控件的具体属性(其实就是对frame的get方法的二次封装, 方便我们的使用),

正确:frame的get方法的二次封装
  • 5.宏定义的使用: 不需要导入,直接使用
Swift的宏定义在本质上并不应该称之为宏定义, 只是为了方便大家的理解, 实质上是一些全局常量和函数



OC中定义宏的方法很多

  • 因为C语言的机制下, 是在编译代码时将宏直接替换成你定义的代码, 所以这在实际使用中, 也是存有安全隐患的
  • 方法一: 直接在需要的类定义
 #define scrren_width [UIScreen mainScreen].bounds.size.width
  • 方法2: 创建.h文件, 导入吃文件就可以使用

  • 1.新建文件, 选择iOS -> Source -> Header File


    创建.h文件
  • 2.然后随便起个名字就好下一步下一步, 这里就不赘述了.

  • 3.生成的文件会是一个空的头文件(Header File)


    .h文件
    1. C语言的宏定义, 并不是很严谨, 任何代码段都可以进行宏定义, 甚至是无效的无序的乱码也可以.
.h文件定义宏
  • 原文摘自JianweiWang
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,223评论 4 61
  • UIGraphicsBeginImageContext(self.view.bounds.size); //c...
    itclimb阅读 1,206评论 0 0
  • 2017年6月8日晚7:30。 一群来自深圳各处的小伙伴来到“很多人”咖啡馆,玩几盘据说能提高财商的游戏。 我是第...
    南昌大魔王阅读 724评论 0 1
  • 四月煙火 成長,總有美妙的瞬間。遍佈荊棘的路上總是歡笑與苦痛並存,如煙火一般。一顆小小 的火柴,一根細細地引線,一...
    紫奕_3a28阅读 456评论 0 1
  • (一) 她没有军训过,我没有见过她的样子。只记得开学分班级的时候她来了。她个头不高也很瘦。一头乌黑的长发看起来很清...
    Recollect阅读 961评论 0 0