簡單介紹以下幾個巨集:1) __va_args__ 是乙個可變引數的巨集,這個可變引數的巨集是新的c99規範中新增的,目前似乎只有gcc支援(vc6.0的編譯器不支援)。巨集前面加上##的作用在於,當可變引數的個數為0時,這裡的##起到把前面多餘的","去掉,否則會編譯出錯。
2) __file__ 巨集在預編譯時會替換成當前的源檔名
3) __line__巨集在預編譯時會替換成當前的行號
4) __function__巨集在預編譯時會替換成當前的函式名稱
1. 在***-prefix.pch裡面新增, 重新定義系統的nslog,__optimize__ 是release 缺省會加的巨集
#ifndef __optimize__
#define nslog(...) nslog(__va_args__)
#else
#define nslog(...){}
#endif
2.在***-prefix.pch裡面新增 ,直接自己寫#define,當release版本的時候把#define 注釋掉即可
#define ios_debug
#ifdef ios_debug
#define nslog(...) nslog(__va_args__)
#endif
3.在***-prefix.pch裡面新增
#ifdef debug
# define dlog(format, ...) nslog((@"[檔名:%s]" "[函式名:%s]" "[行號:%d]" format), __file__, __function__, __line__, ##__va_args__);
#else
# define dlog(...);
#endif
這種方式需要修改專案的配置,使得在debug編譯的時候,編譯dlog的巨集,產生詳細的日誌資訊,而release的時候,不產生任何控制台輸出
相比而言,還是第一種比較方便
NSLog列印各種型別資料的方法
id d,d,i long u,u unsigned long hi short hu unsigned short qi long long qu unsigned long long x,x 16進製制列印unsigned long o,o 8進製列印unsigned long f,e,e,g,...
vue裡面引入jq的方法
1 因為已經安裝了vue腳手架,所以需要在webpack中全域性引入jquery 開啟package.json檔案,在裡面加入這行 jquery後面的是版本,根據你自己需求更改。dependencies 然後在命令列中cnpm install 大多人應該都是使用的 映象,所以使用cnpm,如果你不是...
坑 OC裡面寫的屬性和方法在swift裡面無法訪問
背景 專案裡面oc寫的檔案有個block屬性要在swift裡面訪問,但是在swift裡面怎麼都無法訪問到屬性,然後把block屬性加到oc的方法引數裡面,連方法也不能訪問了.思考 第一直覺猜的是swift不支援oc的block了,但是仔細一想沒有道理,就新建了乙個專案,居然可以訪問block屬性和方...