swift中使用宏定义(使用let常量,或enum枚举,或函数)
2017-05-15 15:21
543 查看
习惯了OC开发的朋友都知道,宏定义在研发工作中是必不可以的,可是当你使用swift开发时,也想使用宏定义,这时修改却发现没办法使用#define xxxx,或static NSString *const xxx进行定义。这是什么情况?
这是因为在swift中命名空间的缘故,即整个项目共享命名空间,决定了不能使用宏定义语法的。为了实现类似于OC中的宏定义,可以添加一个空的Const.swift文件,在其中,我们将原本oc中不需要接受参数的宏,定义成let常量,或定义成枚举值,将需要接受参数的宏定义成函数即可,然后再直接使用Const.swift中定义的这些公共的常量和函数。
![](https://img-blog.csdn.net/20170515151921224?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcG90YXRvNTEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
使用示例:
var width = kScreenWitdh
print(width)
width = GetScreenWidth()
print(width)
var time = kDateFormat_Hm
print("time = \(time)")
time = TimeFormat.format_yyyyMdHmsS.rawValue
print("time = \(time)")
注意事项:使用枚举值时,需要区分是String类型,还是Int类型,String类型时取值使用rawValue,Int类型时取值使用hashValue。
这是因为在swift中命名空间的缘故,即整个项目共享命名空间,决定了不能使用宏定义语法的。为了实现类似于OC中的宏定义,可以添加一个空的Const.swift文件,在其中,我们将原本oc中不需要接受参数的宏,定义成let常量,或定义成枚举值,将需要接受参数的宏定义成函数即可,然后再直接使用Const.swift中定义的这些公共的常量和函数。
使用示例:
var width = kScreenWitdh
print(width)
width = GetScreenWidth()
print(width)
var time = kDateFormat_Hm
print("time = \(time)")
time = TimeFormat.format_yyyyMdHmsS.rawValue
print("time = \(time)")
注意事项:使用枚举值时,需要区分是String类型,还是Int类型,String类型时取值使用rawValue,Int类型时取值使用hashValue。
相关文章推荐
- swift中使用宏定义(使用let常量,或enum枚举,或函数)
- iOS 中的宏定义,常量,与枚举类型使用
- 正确使用iOS常量(const)、enum以及宏(#define)在iOS开发中请尽量多使用const、enum来代替宏定义(#define);随着项目工程的逐渐增大,过多的宏定义还可能影响项目的编译
- 学会使用Constant常量或者Enum枚举
- swift在 enum中使用函数
- swift_032(Swift enum枚举高级使用范例)
- 使用API中的函数:NetUserEnum来枚举用户 NetUserGetInfo来获取用户的信息
- Swift学习——变量var和let常量的使用方法(一)
- 3、Swift变量、常量、函数、类以及扩展类的使用
- 高阶Java枚举类型enum使用详解
- JPA enum(枚举)的使用方法
- Annotation & Enum :Java中注解和枚举的使用
- java enum枚举的使用
- Enum枚举结合switch的使用
- enum 枚举的使用
- c# Enum Flag 下使用 HasFlag() 函数的注意事项
- PHP常量声明、使用方法|define()函数定义常量类似于全局
- 枚举如何使用?有什么用处? enum
- 在PHP中,使用函数define()来定义常量 可设置大小号是否敏感等
- 使用宏定义,简单实现jni函数命名