Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Swift 宏定义与代码标记

Swift 宏定义与代码标记

作者头像
Originalee
发布于 2018-08-30 02:40:39
发布于 2018-08-30 02:40:39
2.3K00
代码可运行
举报
文章被收录于专栏:编程之旅编程之旅
运行总次数:0
代码可运行

Swift中的”宏”

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

举几个简单的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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中的用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// MARK: - XXXXXX    相当于#pragma mark - XXXXXX

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

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

如果MARK后不加 - ,那么就不会有分割线效果
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.08.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS开发中常用的宏
常用的宏 打印日志 //DEBUG 模式下打印日志,当前行 #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif //重写NSLog,Debug模式下打印日志和当前行数 #if DEBUG #define NSLog(FORMAT, ...) fp
码客说
2019/10/22
4500
编码篇-学会小用宏和条件编译
宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。 编译时编译器会在语义分析认定是宏后,将形参替换为实参,这个过程称为宏的展开。
進无尽
2018/09/12
7850
编码篇-学会小用宏和条件编译
iOS:宏定义(项目初期配置)(一)
最近需要重构项目,写个关于重构方面 1.宏定义(基本设置) //读取App的版本号 #define kAPPVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] //弱引用 #define kWeakSelf(type) __weak typeof(type) weak##type = type; //判断设备版iOS9及以上 #define ADVANCE_IOS9 [[[UI
菜菜不吃蔡
2018/12/13
1.1K0
iOS开发·适配iPhone X相关的宏和方法
适配iPhone X和Xcode 9的过程中,除了与导航栏相关的问题,还有一个问题经常出现,就是UITableView相关的问题。下面两个办法可以解决多数错位的问题。
陈满iOS
2018/09/10
1.3K0
iOS开发·适配iPhone X相关的宏和方法
ios swift模仿qq登陆界面,xml布局
极客学院的视频:http://www.jikexueyuan.com/path/ios/
流川疯
2022/05/06
2.2K0
ios swift模仿qq登陆界面,xml布局
[iOS] 小问题记录
iOS 往数据库里写保存文件路径的时候,不要写全路径,因为软件更新或者重新安装沙盒路径会变
wOw
2018/09/18
3.4K0
Swift 学习Using Swift mix and match, network: 写rss读者
4. need a feed manager: FeedManager.swift
全栈程序员站长
2022/07/06
1.3K0
Swift纯代码构建UICollectionView
先看下效果图,很简洁,没有任何样式。 效果图 接下来就是具体的实现。 1. 创建ViewController 命名为SHomeViewController。 2. 声明 UICollectionVie
热心的程序员
2018/08/30
1.9K0
Swift纯代码构建UICollectionView
IOS开发系列——设备信息专题【整理,部分原创】
iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备、系统信息、应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的。那么通过那些api可以获取这些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale。
江中散人_Jun
2022/03/08
9440
iOS获取屏幕宽高、设备型号、系统版本信息介绍1、获取屏幕的宽高2、获取设备的型号3、获取系统版本
在我学习android开发的时候,觉得设备适配是件很头疼的事情,android的设备太多了,那时就很羡慕iOS开发的人不用操心适配的问题,而当我开始学习iOS开发后,iOS的屏幕也开始多种多样了起来...于是也得做适配了,sad...
Cloudox
2021/11/23
2.6K0
iOS获取屏幕宽高、设备型号、系统版本信息介绍1、获取屏幕的宽高2、获取设备的型号3、获取系统版本
30DaysOfSwift - Day1 计时器
前几天逛Github,偶然看到一个Swift的项目 —— 30DaysOfSwift,作者一共用30个小项目,来熟悉Swift语言,而我正好也学习了一段时间的Swift语言,准备仿照这样的模式,来更加深入的了解UI部分
Originalee
2018/08/30
8150
iOS学习——UIPickerView的实现年月选择器
  最近项目上需要用到一个选择器,选择器中的内容只有年和月,而在iOS系统自带的日期选择器UIDatePicker中却只有四个选项如下,分别是时间(时分秒)、日期(年月日)、日期+时间(年月日时分)以及倒计时。其中并没有我们所需要的只显示年月的选择器,在网上找了很多相关的资料,但是觉得都写得过于麻烦。因此,为了满足项目需求,自己用UIPickerView写了一个只显示年月的选择器界面,同时还可以控制我们的显示的最小时间。当然,如果要控制其他内容也都是可以的,无非就是在数据处理上多一些处理和控制。 typed
mukekeheart
2018/03/26
4.7K0
iOS学习——UIPickerView的实现年月选择器
iOS关于地图定位基础(二)[通俗易懂]
在前一篇文章 iOS关于地图定位基础(一) 中我们主要总结了 iOS 里面利用原生 CoreLocation 框架实现基本定位功能和一些注意点,侧重点主要是iOS8+之后的定位授权与授权状态的使用。接下来本篇文章主要是讲解如何利用 CoreLocation 框架实现地理定位、区域监听、地理编码的具体实现。(PS:下文涉及我自定义的指南针Demo请去我的GitHub仓库查看源码https://github.com/IMLoser/HWCompass,谢谢大家支持。)
全栈程序员站长
2022/09/17
1K0
iOS关于地图定位基础(二)[通俗易懂]
Swift-MVVM 简单演练(二)
Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(三) Swift-MVVM 简单演练(四) 处理下拉刷新逻辑 根据接口文档,下拉刷新是返回ID比since_id大的微博(即比since_id时间晚的微博)。因此,我们需要在网络请求方法里增加两个参数。since_id和max_id,分别对应下拉刷新所需参数和上拉加载所需参数。 既然要修改网络请求方法,当然是从我们自己抽取的HQNetWorkManager+Extension和HQStatusListViewModel这两个地方入手考虑。
用户1890628
2018/05/10
2.4K0
Swift学习第一练——用Swift实现的FlappyBird小游戏
      伴随着apple公司对swift的推广态度深入,swift火的很快,并且swift精简便捷的语法和强大的功能,对于使用Object—C开发iOS的开发者来说,也有必要了解学习一下swift。这篇博客跳过swift干涩的语法,直接从一个小游戏项目开始使用swift,将其中收获总结如下:
珲少
2018/08/16
1.1K0
Swift学习第一练——用Swift实现的FlappyBird小游戏
iOS适配
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
码客说
2019/10/22
9630
iOS14开发-数据存储
简单理解就是资源文件包,会将许多图片、xib、文本文件组织在一起,打包成一个 Bundle 文件,这样可以在其他项目中引用包内的资源。
YungFan
2021/03/30
1K0
Swift纯代码走进UICollectionView
2.jpg Swift对于一门新的iOS编程语言,他的崛起是必然的 我们这群老程序员们学习新的技能也是必然的 不接受新技能将被这大群体无情的淘汰 So 我欣然接受这门看似不成熟的语言 下面我们说说Swift中比较常见的控件UICollectionView 首先我们设置一个全局的UICollectionView和一个数据源 var colltionView : UICollectionView var dataArr = NSMutableArray() 然后设置UICollectionVie
Bison
2018/06/28
3.2K0
分分钟解决iOS开发中App启动广告的功能
allluckly.cn 前不久有朋友需要一个启动广告的功能,我说网上有挺多的,他说,看的不是很理想。想让我写一个,于是乎,抽空写了一个,代码通俗易懂,简单的封装了一下,各种事件用block回调的,有俩种样式的广告,一种是全屏广告,另一种是下面露logo的,类似网页新闻的启动广告。依赖SDWebImage主要用来下载网络的广告图片,一般项目里面网络图片都用的这个框架,所以在此不做过多的阐述。下面让我们来看看我封装的过程,对于新手来说,可以学习一下这种封装的思想。 1.首先建一个继承View的LBLaunch
Bison
2018/07/04
3.4K0
设计模式之创建型模式
GoF的《设计模式》一书总结了面向对象软件中一些宝贵的设计经验,系统地对它们命名、解释和评价,并以编目分类的形式将它们展现出来,这就是广为流传的23个设计模式的由来。
Sheepy
2018/09/10
6690
设计模式之创建型模式
相关推荐
iOS开发中常用的宏
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验