Swift宏

作者: 大刘 | 来源:发表于2022-06-30 17:30 被阅读0次

Swift中没有宏,但可以用其他方式实现类似于宏的功能。
示例:

#define M_PI 3.14

let M_PI = 3.14

#define NSLocalizedString(key, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

func NSLocalizedString(key: String, value: String, table: String) -> String {
    return Bundle.main.localizedString(forKey: key, value: value, table: table)
}

Swift中也没有了条件编绎

#if <condition>
#elseif <condition>
#else
#endif

不过,Swift 内建了几种平台和架构的组合,来帮助我们为不同的平台编译不同的代码,具体地:

方法 可选参数
os() OSX, iOS
arch() x86_64, arm, arm64, i386

os即操作系统,OSX即MAC操作系统,iOS即手机, iPad..操作系统
arch指CPU架构,arm 和 arm64 两项分别对应真机 32 位 CPU 和 64 位 CPU, i386 和 x86_64两项分别对应32位模拟和64位模拟器(模拟器当然使用的是电脑x86系列CPU)

如果我们统一我们在 iOS 平台和 Mac 平台的关于颜色的 API 的话,一种可能的方法就是配合 typealias 进行条件编译:

#if os(OSX)
    typealias Color = NSColor
#else
    typealias Color = UIColor
#endif

参考:

相关文章

  • swift&&OC

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

  • swift 宏定义

    首页 创建一个swift项目 (swift4.0) 创建AppConst.swift 写宏 使用宏

  • Swift中的编译宏设定

    编译宏 Swift中的编译宏设定,是通过在Build Settings中,Other Swift Flags设定的...

  • Swift 宏定义与代码标记

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

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

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

  • Swift宏

    Swift中没有宏,但可以用其他方式实现类似于宏的功能。示例: Swift中也没有了条件编绎 不过,Swift 内...

  • Swift-OC混编总结

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

  • Swift-CommonFunctions

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

  • Swift宏定义

    今天进行Swift编程,想用宏定义的时候,才发现熟悉的#define没了,真是扯在网上查了一下swift的宏,在此...

  • OC&swift中的宏定义

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

网友评论

      本文标题:Swift宏

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