Swift中的”宏”
寫Objective-C的時(shí)候常常會用到各種宏定義,但是Swift中貌似沒有宏的這種定義,更多的是通過全局常量或者全局函數(shù)來實(shí)現(xiàn)這一效果.我們只需要建立一個(gè)文件(假設(shè)為Const.swift),把想用的定義在里面,無須導(dǎo)入頭文件什么的,就可以在全局用啦.
舉幾個(gè)簡單的例子:
import UIKit
import Foundation
/**
* 替代oc中的#define,列舉一些常用宏
*/
// 屏幕的物理寬度
let kScreenWidth = UIScreen.mainScreen().bounds.size.width
// 屏幕的物理高度
let kScreenHeight = UIScreen.mainScreen().bounds.size.height
/**
* 除了一些簡單的屬性直接用常量表達(dá),更推薦用全局函數(shù)來定義替代宏
*/
// 判斷系統(tǒng)版本
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的顏色設(shè)置
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編碼時(shí)蒙保,我發(fā)現(xiàn)平時(shí)很習(xí)慣的 #pragma mark
不見了库正,去查了資料才發(fā)現(xiàn)Swift中這個(gè)也改了,現(xiàn)在Swift中的用法如下
// MARK: - XXXXXX 相當(dāng)于#pragma mark - XXXXXX
// TODO: XXXXXX 相當(dāng)于#pragma mark XXXXXX
// FIXME: XXXXXX 相當(dāng)于額....隨意了
如果MARK后不加 - 沪猴,那么就不會有分割線效果