iOS_attribute__使用

一丶介紹

attribute 是 GNU C 的一大特色。

二丶使用

1.函數(shù)屬性

函數(shù)屬性可以幫助開發(fā)者把一些特性添加到函數(shù)聲明中,從而可以使編譯器在錯(cuò)誤檢查方面的功能更強(qiáng)大。attribute機(jī)制也很容易同非GNU應(yīng)用程序做到兼容之功效。

語法格式為:
format (archetype, string-index, first-to-check)

具體使用格式如下:

__attribute__((format(printf,m,n)))                            
__attribute__((format(scanf,m,n)))

m:第幾個(gè)參數(shù)為格式化字符串(format string);
n:參數(shù)集合中的第一個(gè),即參數(shù)“…”里的第一個(gè)參數(shù)在函數(shù)參數(shù)總數(shù)排在第幾

實(shí)例:

Paste_Image.png

去掉attribute((format(printf,1,2))),則會正常編譯。

擴(kuò)展:
順便看下OC里的NSLog定義:
NSObjCRuntime.h


Paste_Image.png
Paste_Image.png

2.變量屬性

2.1__attribute__((cleanup(...))),用于修飾一個(gè)變量,在它的作用域結(jié)束時(shí)可以自動執(zhí)行一個(gè)指定的方法
實(shí)例1:
Paste_Image.png

打印順序:

Paste_Image.png

注意:cleanup是先于這個(gè)對象的dealloc調(diào)用的

示例2:

Block屬性的使用
摘自:http://blog.sunnyxx.com/2014/09/15/objc-attribute-cleanup/

Paste_Image.png
2.2__attribute__((deprecated("")) 棄用
在OC中,可以使用 DEPRECATED_MSG_ATTRIBUTE(s) 這個(gè)宏

使用:

Paste_Image.png

三丶參考文章:

http://blog.csdn.net/juana1/article/details/6849120
http://blog.sunnyxx.com/2014/09/15/objc-attribute-cleanup/

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

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

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