Swift小技巧之命名空間

通過結(jié)構(gòu)體枚舉來實現(xiàn)命名。

不想扯什么前言了,直接奔主題吧!

在OC中我們通過添加前綴來避免與其他文件重名,例如,我有一個URL和一個token在OC中會像這樣命名:

NSString * const XXAPIBaseURL = @"https://example.com/v1";
NSString * const XXAPIToken = @"sdfiug8186qf68qsdf18389qsh4niuy1";

其缺點是不好看也不好讀,而在Swift中有很多新特性可以逆襲這點,像這樣:

struct API {
    static let BaseURL = "https://example.com/v1/"
    static let Token = "sdfiug8186qf68qsdf18389qsh4niuy1"
}

據(jù)說這個方法是由Jesse Squires大哥給提出來的,是不是瞬間高大上了好多!

但是還有個小問題,如果是多人合作開發(fā),別人又不知道你這API是個什么鬼,閑的無聊來搞個對象玩玩,這下就不好了;解決辦法就是私有化初始化方法,像下面這樣:

struct API {
    private init() {}
    static let BaseURL = "https://example.com/v1/"
    static let Token = "sdfiug8186qf68qsdf18389qsh4niuy1"
}

當(dāng)別人初始化API時就會報錯!

使用就更簡單了,聰明如你,肯定不用我說也知道了:

class Test {
    let url = API.BaseUrl
    let token = API.Token
}

除了結(jié)構(gòu)體以外,還可以使用枚舉來實現(xiàn)

enum API {
    static let BaseURL = "https://example.com/v1/"
    static let Token = "sdfiug8186qf68qsdf18389qsh4niuy1"
}

使用枚舉就不會有初始化問題,因為枚舉不可以初始化的呀!

** 以上兩種方法都是比較優(yōu)雅的命名方法,也更加符合Swift下的格式化要求。**

最后給個發(fā)送通知的實例:

enum UserDefaults { 
    static let CurrentVersion = "currentVesion" 
    static let DarkModeEnabled = "darkModeEnabled"
}
enum Notifications { 
    static let DidUpdateProfile = "DidUpdateProfile" 
    static let DidUpdateReadState = "DidUpdateReadState" 
    static let DidSynchronizeBookmarks = "DidSynchronizeBookmarks"
}

// Post Notification
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.postNotificationName(Notifications.DidSynchronizeBookmarks, object: self)
// Update User Defaults
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setBool(darkModeEnabled, forKey: UserDefaults.DarkModeEnabled)

今天的課就到這里了,有問題歡迎交流!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,487評論 4 61
  • ISBN:9787806638866 作者:古典 第一章:安全感 文章開始的關(guān)于購房的觀點讓人觸目驚心。作者還為大...
    何老師閱讀 1,317評論 1 0
  • 不是所以人,我都可以一眼看穿看懂的,所以如果有機(jī)會合作,一定要丑話全部講在前頭。這句話是今天從hi小姐那里學(xué)...
    是Penny閱讀 304評論 0 0
  • 說起在火車上寫東西,已經(jīng)忘記了是什么時候開始的。唯獨記得,一個人坐火車是件挺無聊的事,當(dāng)然這僅限像我這樣慢熱的一...
    雨涼城閱讀 534評論 0 3
  • 離考研復(fù)試還有一天,說不緊張是假的,從決定考研開始,就身體一直不好,尤其是年前的那幾天,去了趟上海,種種奔波...
    Simona是我閱讀 310評論 0 0

友情鏈接更多精彩內(nèi)容