swift下實(shí)現(xiàn)宏定義及DEBUG中使用自定義Log

Swift作為一款更加安全的語(yǔ)言, 放棄了C語(yǔ)言中的宏定義, 有效的防止預(yù)編譯時(shí)代碼宏替換的安全隱患, 但是也并非不能進(jìn)行宏定義,這里給大家詳細(xì)的介紹新建宏定義的方式

1.新建文件, 選擇iOS -> Source -> Swift File


2.新建一個(gè).swift ?默認(rèn)會(huì)是Foundation框架, 自己修改為UIKit即可


3.設(shè)置宏定義

3.1 設(shè)置簡(jiǎn)單的宏定義

在swift中宏定義, 并非是預(yù)編譯代碼替換, 而是設(shè)置全局常量, 簡(jiǎn)單的宏, 直接let 加常量名即可

?

3.2 設(shè)置復(fù)雜的宏定義

但是像上面的宏定義遠(yuǎn)遠(yuǎn)不能滿足我們的需要, 如果想要實(shí)現(xiàn)view.frame.bounds.Width的方式, 就要想其他的辦法了, 因?yàn)橹苯觢et CREEN_WIDTH = frame.bounds.Width這種方式明顯不合法。

那么要想實(shí)現(xiàn)這種便捷的方式, 就要通過(guò)方法來(lái)實(shí)現(xiàn)了

4.宏定義的使用


Swift 系統(tǒng)編譯時(shí)不需要引入相應(yīng)的類, 這些相比OC都方便了很多, 不會(huì)出現(xiàn)引入一排頭文件很丑陋的樣子了, 也避免了很多諸如循環(huán)引用的情況直接在別的swift文件 調(diào)用方法即可


5.DEBUG下使用自定義Log


很多開發(fā)者都忽略了的一個(gè)事實(shí)是調(diào)用 print 實(shí)際上會(huì)降低你的應(yīng)用的性能。在調(diào)試過(guò)程中代碼中遍布大量的 print 是完全沒有問題的,但是在上架 App Store 之前,你應(yīng)該刪掉它們(否則還有被拒的風(fēng)險(xiǎn))。

Xcode 允許我們?cè)诿總€(gè)工程中創(chuàng)建額外的配置。默認(rèn)情況下 Xcode 為新工程提供了兩種配置,Debug 和 Release。在模擬器或通過(guò) USB 連接的設(shè)備上運(yùn)行你的 app 時(shí),Debug 是默認(rèn)配置;當(dāng)你打包 app 準(zhǔn)備上架時(shí),使用的是 Release 配置。我們將把我們的 print 代碼用 Debug 預(yù)編譯指令包起來(lái),這樣我們就不用每次打包時(shí)都注釋/取消注釋/添加/刪除所有的 print 了。

具體操作 ?1 選擇項(xiàng)目名稱 ->2 選擇TARGETS ->3 選擇Build Setting ->4 搜索 Compiler Flag ->5 展開 Other C Flags ->6 ?雙擊 Debug 右邊框 ->7 在彈出框里輸入 D DEBUG


自定義打印日志信息方法如下

然后在別的的swift文件中使用DLog方法就可以了,這里我在AppDelegate中使用


運(yùn)行程序,打印出的結(jié)果如下

現(xiàn)在你的 print 語(yǔ)句只會(huì)在調(diào)試時(shí)運(yùn)行。你可以將程序改為?Release模式進(jìn)行測(cè)試是否打印出了結(jié)果,不過(guò)不要忘了把它重新改回 Debug!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容