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 ...
随机推荐
- HDU 4738 Caocao's Bridges(找割边)
HDU 4738 Caocao's Bridges 题目链接 注意几个坑,可能重边,至少要派一个人去炸,没有连通的时候就不用炸了 代码: #include <cstdio> #includ ...
- PHP接收和发送XML数据(json也通用)
一.接收xml数据, 使用php://input,代码如下: <?php $xmldata=file_get_contents("php://input"); $data=s ...
- CentOS7 yum 安装 Nginx最新版本
CentOS7 yum 安装 Nginx最新版本 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/7/noarc ...
- debian SSD ext4 4K 对齐
新入手了一台thinkpad, 原来的机械硬盘是500G的, 于是购入一块镁光的MX200 250G的SSD来新装debian stable(jessie) 1, 安装系统的之前按住F1进入bios后 ...
- MySQL四-1:数据类型
阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 ...
- 怎样查看Eclipse是32位还是64位?
怎样查看Eclipse是32位还是64位? 1.去Eclipse的安装文件夹,找到eclipse.ini 2.打开这个文件.寻找:launcher.library,我的机器上,在第二行 3.查看&qu ...
- PHP 学习内容
第一阶段: (PHP+MySQL核心编程) 面向对象编程 MySQL数据库, MySQL的优化细节. HTTP协议,http也是我们web开发的基石.对我们了解PHP底层机制有很大帮助,做到知其然,还 ...
- 【转】python测试开发面试题
出处:http://my.oschina.net/u/1433482/blog/467954?fromerr=WrfxL2Kw 试卷时间 60分钟,请不要在试卷上作答,用A4纸做答题纸作答. 一,中文 ...
- wireshark:Couldn't run /usr/bin/dumpcap in child process: Permission denied
When start wireshark, I met an error like: 引用 Couldn't run /usr/bin/dumpcap in child process: Permis ...
- 文件大小转换(b,kb,M,GB/TB)
//转换单位 setupSize(1111111111111); function setupSize($fileSize) { $size = sprintf("%u", $fi ...