Swift 宏定义与代码标记

Swift中的”宏”

Objective-C的时候常常会用到各种宏定义,但是Swift中貌似没有宏的这种定义,更多的是通过全局常量或者全局函数来实现这一效果.我们只需要建立一个文件(假设为Const.swift),把想用的定义在里面,无须导入头文件什么的,就可以在全局用啦.

举几个简单的例子:

import UIKit
import Foundation

/**
*   替代oc中的#define,列举一些常用宏
*/

// 屏幕的物理宽度
let kScreenWidth = UIScreen.mainScreen().bounds.size.width
// 屏幕的物理高度
let kScreenHeight = UIScreen.mainScreen().bounds.size.height

/**
*   除了一些简单的属性直接用常量表达,更推荐用全局函数来定义替代宏
*/
// 判断系统版本
func kIS_IOS7() ->Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 7.0 }
func kIS_IOS8() -> Bool { return (UIDevice.currentDevice().systemVersion as NSString).doubleValue >= 8.0 }

// RGBA的颜色设置
func kRGBA (r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat) -> UIColor {
    return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: a)
}

// App沙盒路径
func kAppPath() -> String! {
    return NSHomeDirectory()
}

// Documents路径
func kBundleDocumentPath() -> String! {
    return NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String
}

// Caches路径
func KCachesPath() -> String! {
    return NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true).first as! String
}

Swift中的”#pragma mark”

在今天初用Swift编码时,我发现平时很习惯的 #pragma mark 不见了,去查了资料才发现Swift中这个也改了,现在Swift中的用法如下

// MARK: - XXXXXX    相当于#pragma mark - XXXXXX

// TODO: XXXXXX      相当于#pragma mark XXXXXX

// FIXME: XXXXXX     相当于额....随意了

如果MARK后不加 - ,那么就不会有分割线效果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

MySQL 直接存储图片并在 html 页面中展示,点击下载

23220
来自专栏琯琯博客

JavaScript 103 条技能

1、原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var ic...

29260
来自专栏小灰灰

cocos2dx-v3.4 2048(四):游戏逻辑的设计与实现

前言 ---- 2048的游戏逻辑比较简单,向四个方向移动单元格,若相邻的单元格数字相同,则合并成一个新的单元格,且数字为之前的两倍;若不同,则移动到目的方向上...

42160
来自专栏coding...

Objectiv-c - UICollectionViewLayout自定义布局-瀑布流Demo地址

公开变量以及代理. 公开的变量是可以进行调用时设置,一般就为这些,delegate用来实现动态的高度设置

9540
来自专栏云瓣

从 0 到 1 实现 React 系列 —— 生命周期和 diff 算法

本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/...)

9030
来自专栏林德熙的博客

win10 uwp 分治法

算法涉及到了一个平面几何的知识。就是三角形p1p2p3的面积等于以下行列式的二分之一: % <![CDATA[ \begin{array}{cccc} | ...

8910
来自专栏JadePeng的技术博客

易企秀前端压缩源码分析与还原

你是否想知道易企秀炫酷的H5是如何实现的,原理是什么,本文会为你揭秘并还原压缩过的源代码。 易企秀是一款h5页面制作工具,因方便易用成为业界标杆。后续一个项目会...

1K70
来自专栏mathor

事件模型

 事件模型如何理解呢,举个例子,你老婆出门了,让你在家看孩子,难道你每过一分钟就去看一次孩子吗,对于计算机来说,我做一个按钮,难道就一直监听这个按钮使用没有...

10710
来自专栏緣來來來

Python爬虫 --- 2.2 Scrapy 选择器的介绍

Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分 Xpath是专门在X...

12820
来自专栏前端儿

编写高质量 JavaScript -- 知识点小记

此番改善之后,匿名function里面的变量作用域不再是window,而是局限在函数内。

20710

扫码关注云+社区

领取腾讯云代金券