Swift 宏定義的坑

在我們開發(fā)的過程中,為了方便會 定義很多宏定義,像systemColor,systemUrl 之類的,如果是在OC開發(fā)的項目中不會出現(xiàn)問題,但是現(xiàn)在是在swift開發(fā)中,問題就顯現(xiàn)出來了。

我的項目中,登錄時,帳號,密碼,組織機構(gòu)ID等等其他一些程序中要用到的東西 都是使用UserDefault存儲在本地,然后定義一個宏定義取出來,像這個樣子 :

錯誤的做法

(ToolHelper.swift_GetUserDefaults()是封裝的UserDefault取數(shù)據(jù)的方法),這樣在程序運行中是不會有問題的;但是如果你退出了,切換了帳號重新登錄,問題就來了:SystemUserPWD 它被定義為一個常量,所以它一旦被賦值就不會再改變,這就導(dǎo)致了 存儲在本地的數(shù)據(jù)已經(jīng)改變了,但是 SystemUserPWD 還是退出登錄以前 的數(shù)據(jù),程序中一旦用到這個值就會出問題了。

解決辦法就是 SystemUserPWD不要定義為一個 常量,而是定義為一個 方法,像這樣:


正確的做法

這樣每次使用到它的時候 都是現(xiàn)取值就不會出現(xiàn)問題了。

最后編輯于
?著作權(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)容

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