iOS swift 常量 && 宏定义
全局常量
在C和Objective-C语言源文件中定义的全局常量会自动地被Swift编译引进并做为Swift的全局常量。
预处理指令
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使用复杂的宏以避免类型检查的限制或避免重新键入大量的样板代码。然而,宏也会造成debug和重构起来更困难。在Swift中你 可以使用函数和泛型来达到同样的效果,而没有任何的委屈折中。因此,在C和Objective-C源文件中定义的复杂宏在Swift是不能使用的。
使用举例:
//
// GlobalConst .swift
// LiqunSwiftDemo
//
// Created by HF on 15/11/3.
// Copyright © 2015年 HF-zhjh. All rights reserved.
// import Foundation import UIKit let WEBAPIBASEURL = "http://baidu.com" //简单宏 作为 全局的常量 let COLOR_THEME_GREEN:UIColor = getColor(1) //复杂宏 以函数 体现 这里举例太弱 以后待补充 还有泛型的知识 func getColor(myColor:Int) -> UIColor{
return UIColor(colorLiteralRed: 0.08, green: 0.64, blue: 0.0, alpha: 1)
}
///////////////////// 在使用的地方 直接调用
即可

iOS swift 常量 && 宏定义的更多相关文章
- 如何为Swift进行宏定义
这阵子一直在自学Swift, 因为之前iOS的开发一直用Objective-C, 所以习惯了C语言那种宏定义方式, Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码 ...
- iOS开发之--宏定义与const的区别及使用方法
宏定义的常见用法: 定义一段代码,或指定字符串抽成宏. const(常量): 当有字符串常量的时候,苹果推荐我们使用const,苹果经常把常用的字符串定义成const 宏定义与const的区别: 编译 ...
- Swift:宏定义
一.简述 swift中并没有加入宏系统,C语言使用#define定义的基本常量在导入Swift时被Swift编译自动转为Swfit语言的全局变量.但复杂的宏定义不能被Swift转换.Swift中类似宏 ...
- iOS - 常用的宏定义
1.处理NSLog事件(开发者模式打印,发布者模式不打印) 1 2 3 4 5 #ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr,& ...
- iOS技巧,宏定义
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnoAAAPCCAYAAADvRHWgAAAAAXNSR0IArs4c6QAAAZ1pVFh0WE1MOm
- iOS开发笔记--宏定义的黑魔法 - 宏菜鸟起飞手册
宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在 ...
- iOS之常用宏定义
下面我为大家提供一些常用的宏定义! 将这些宏定义 加入到.pch使用 再也不用 用一次写一次这么长的程序了 //-------------------获取设备大小------------------- ...
- iOS常用的宏定义总结
字符串是否为空 1 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str le ...
- IOS 常用的宏定义(#define)
开发中经常用到的常量定义(随时更行): 与UIView相关 //获取View的frame属性 #define GetViewWidth(view) view.frame.size.width #def ...
随机推荐
- LeetCode题目: Remove Duplicate Letters
问题描述 给一个字符串(只包含小写字母),删除重复的字母, 使得每个字母只出现一次.返回的结果必须是字典顺序最小的. 举例:“bcabc" -> "abc", &q ...
- 涛哥的Python脚本工具箱之生成带Logo的二维码
近期须要在二维码上加Logo,网上没有找到好用的,于是自己用python写了一个. 须要安装qrcode,PIL库 二维码简称 QR Code(Quick Response Code),学名为高速响应 ...
- 使用新版MonoDevelop来进行unity工程调试
现在可以使用新版的MonoDeveloper来调试Unity工程了,新版的MonoDeveloper界面上漂亮很多,而且使用.调试上感觉也更舒服了.先上一张图: 安装方法如下: 登陆网址:http ...
- CAP原则 和BASE
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼 [1] ...
- 详细解读:远程线程注入DLL到PC版微信
一.远程线程注入的原理 1.其基础是在 Windows 系统中,每个 .exe 文件在双击打开时都会加载 kernel32.dll 这个系统模块,该模块中有一个 LoadLibrary() 函数,可以 ...
- Android内容提供者
一个应用中的数据库对别人是不会提供直接的访问的,而是提供接口给别人访问,但是一般应用开发的时候都是去获取别人的数据,而不是自己提供数据. 继承ContentProvider: 在Menifest中注册 ...
- 【Mac系统】之fiddler下载和安装
使用教程参考:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html#request 一.首先,在Mac下安装fiddler时, ...
- 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作
用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...
- e.target与e.currentTarget对比
复制以下代码,即可查看效果 <!DOCTYPE html> <html> <head lang="en"> <meta charset=& ...
- saltstack内置执行模块groupadd
groupadd模块用于命令行管理用户组 salt.modules.groupadd.add(name, gid=None, system=False) 添加一个用户到指定GID 例:salt '*' ...