美文网首页
swift中如何达到define的效果

swift中如何达到define的效果

作者: 傻傻小萝卜 | 来源:发表于2016-05-26 10:45 被阅读2171次

预处理指令

Swift编译器不包含预处理器。取而代之的是,它充分利用了编译时属性,生成配置和语言特性来完成相同的功能。因此,Swift没有引进预处理指令。

简单宏

在C和Objective-C,您通常使用的#define指令定义的一个基本常数,在Swift,您可以使用全局常量来代替。例如:一个全局定义#define FADE_ANIMATION_DURATION 0.35,在Swift可以使用let FADE_ANIMATION_DURATION = 0.35来更好的表述。由于简单的用于定义常量的宏会被直接被映射成Swift全局量,Swift编译器会自动引进在C或Objective-C源文件中定义的简单宏。

复杂宏

在C和Objective-C中使用的复杂宏在Swift中并没有副本。复杂宏是那些不用来定义常量的宏,包含带括号的函数式宏。您在C和Objective-C使用复杂的宏以避免类型检查的限制,或避免重新键入大量的样板代码。然而,宏也会产生Bug和重构的困难。在Swift中你可以使用函数和泛型来达到同样的效果,无需任何的妥协。因此,在C和Objective-C源文件中定义的复杂宏在Swift是不能使用的。

编译配置

Swift代码和C、Objective-C代码被有条件地,以不同方式编辑。SWIFT代码可以根据生成配置的评价可以有条件地编译。生成配置包括true和false字面值、命令行标志以及下表中的平台测试函数。您可以使用-D <#Flag#>指定命令行标志。

需求解决

建立一个类,将过去需要建立的那些简单的宏,设为全局变量,例如这样

这样在你代码中需要的时候直接调用即可例如

self.view.backgroundColor=CustomBarTintColor

相关文章

  • swift中如何达到define的效果

    预处理指令 Swift编译器不包含预处理器。取而代之的是,它充分利用了编译时属性,生成配置和语言特性来完成相同的功...

  • Swift常用的全局常量和函数(OC宏定义)

    // 那么在Swift中如何对常用的工具方法进行定义呢? Swift中不支持#define语法,只能依赖Swift...

  • Swift:宏定义

    一、简述 swift中并没有加入宏系统,C语言使用#define定义的基本常量在导入Swift时被Swift编译自...

  • oc中配置swift Charts

    找了很久一直没有找到oc中做统计图达到swift Charts这个效果的,没办法只能在oc的项目把swift配置上...

  • 宏定义 define

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

  • 5.7 对内存进行复制移动填充

    效果 源码 #include #include #define MEM_BLOCK_SIZE 32 //显示内存中...

  • swift 自定义Log

    ——> 代表传递过来什么类型,就是什么类型的数据 在swift中,没有#define, 需要在 targe...

  • Swift学习笔记(一)宏

    Swift并没有加入宏定义,因为传统C语言中使用的#define在Swift中基本以常量形式呈现,即使在二者混编时...

  • swift 如何设置全局头文件

    swift 没有了 #define 宏定义,可以用 let 声明。 (swift 不用声明全局头文件的,是不是方便...

  • Swift 调用 c 语言

    无参数型 define 常量的定义 此类 define,Swift 会转换为常量定义,等同于如下代码 非常量的定义...

网友评论

      本文标题:swift中如何达到define的效果

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