小驢拉磨之—ReactiveCocao(RAC)一些重要的宏

使用過RAC的都知道RAC的宏是非常強(qiáng)大的,在這我給大家介紹一些重要的宏。

元宏(RAC中最基本一個(gè)宏,PS:那個(gè)yaun不知道對不對 _|| )

//用來把參數(shù)變成成一個(gè)字符串
    metamacro_stringify(10);

點(diǎn)進(jìn)去看,發(fā)現(xiàn)還是這個(gè)宏知識(shí)多了一個(gè)下劃線metamacro_stringify_


image.png

再點(diǎn)擊metamacro_stringify_看


image.png

發(fā)現(xiàn)RAC的宏基本都是宏包裝宏
下來給大家舉個(gè)例子來說明一下

  • 創(chuàng)建兩個(gè)宏
#define NUMBER 10
#define ADD(a,b) (a + b)

使用宏做一個(gè)打印

NSLog(@"%d + %d = %d", NUMBER, NUMBER, ADD(NUMBER, NUMBER));

結(jié)果


image.png

這個(gè)是沒有問題的,接下來再看一個(gè)

  • 寫一個(gè)宏
//將A,10,B進(jìn)行pinjie
#define CALCILATE(A,B) (A##10##B)

使用宏做一個(gè)打印

NSLog(@"%d",CALCILATE(NUMBER,NUMBER));

編譯就報(bào)錯(cuò)


image.png

報(bào)錯(cuò)了,因?yàn)楹曛惺褂玫搅撕晁詧?bào)錯(cuò)了。
我們把上面的宏按照RAC中的改一下

#define CALCILATE(A,B) _CALCILATE(A,B)
#define _CALCILATE(A,B) (A##10##B)

結(jié)果

image.png

運(yùn)行沒有問題
這個(gè)就是RAC中宏的使用,其他的宏都是類似的。RAC的團(tuán)隊(duì)這樣使用宏的靈感來自于這個(gè)網(wǎng)站,感興趣的童鞋可以看一下:http://p99.gforge.inria.fr

  • 還有在使用@weakify(self),@strongify(self)等類似宏時(shí),block中的控件數(shù)量最好不要超過20的個(gè)原因,也是因?yàn)镽AC中的宏定義


    image.png

~~~未完待續(xù)

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

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

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