内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

如何在iOS中使用宏

如何在iOS中使用宏?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

十載的羅湖網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整羅湖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“羅湖網(wǎng)站設(shè)計(jì)”,“羅湖網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

FOUNDATION_EXPORT, UIKIT_EXTERN

該宏的作用類(lèi)似于extern,使用方法也與extern類(lèi)似,在.m文件中,定義如下

 NSString *const kFoundationExportString = @"Hello World";
 
 NSString *const kExternString = @"Hello World";

然后在.h文件中加上以下聲明, 就可以在導(dǎo)入該.h文件的類(lèi)中訪問(wèn)該常量。

 FOUNDATION_EXPORT NSString *const kFoundationExportString;
 
 extern NSString *const kExternString;

如果要在未導(dǎo)入該.h文件的類(lèi)中訪問(wèn)這兩個(gè)常量, 則應(yīng)該將上面的代碼放入該類(lèi)的.m文件中。

UIKIT_EXTERN相比extern只是增加了兼容性,使用方法一樣。

使用如下:

 NSString *str = @"Hello World";
 if (str == kConstantString) {
 NSLog(@"equal");
 }

使用FOUNDATION_EXPORT聲明的字符串常量比較的是指針的地址, 而#define宏定義的常量字符串只能使用isEqualToString來(lái)比較, 前者更加高效。

如何在iOS中使用宏

define與FOUNDATION_EXPORT比較

NS_STRING_ENUM 和 NS_EXTENSIBLE_STRING_ENUM

這兩個(gè)個(gè)宏定義是用于為Objective-C橋接Swift所使用的,它的作用是在橋接到 Swift 中時(shí)可進(jìn)行枚舉擴(kuò)展,使用如下:

在.h文件中聲明

 typedef NSString *ViewControllerKey NS_STRING_ENUM;
 FOUNDATION_EXPORT ViewControllerKey const ViewControllerKeyTitle;
 FOUNDATION_EXPORT ViewControllerKey const ViewControllerKeySubtitle;
 FOUNDATION_EXPORT ViewControllerKey const ViewControllerKeySummary;

.m文件中定義:

 ViewControllerKey const ViewControllerKeyTitle = @"title";
 ViewControllerKey const ViewControllerKeySubtitle = @"subtitle";
 ViewControllerKey const ViewControllerKeySummary = @"summary";

在swift文件中使用如下:

 print("\(ViewControllerKey.title) \(ViewControllerKey.subtitle) \(ViewControllerKey.summary)")

這兩個(gè)宏定義的區(qū)別在于,NS_STRING_ENUM是確定的, NS_EXTENSIBLE_STRING_ENUM則是可擴(kuò)展的,還可以在在swift中進(jìn)行擴(kuò)展。

__VA_ARGS__

##就是個(gè)粘合劑,將前后兩部分粘合起來(lái),也就是有“字符化”的意思。

而__VA_ARGS__在預(yù)編譯中會(huì)被實(shí)參列表取代, ...表示可變參列表。

##__VA_ARGS__ 宏前面加上##的作用在于,當(dāng)可變參數(shù)的個(gè)數(shù)為0時(shí),這里的##起到把前面多余的,去掉的作用,否則會(huì)編譯出錯(cuò)

 #define BLOCK_EXEC(block, ...) if (block) { block(__VA_ARGS__); };

 #ifdef DEBUG
 #define LogInfo( s, ... ) NSLog( @"[LogInfo]<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
 #else
 #define LogInfo( s, ... )
 #endif

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

網(wǎng)頁(yè)標(biāo)題:如何在iOS中使用宏
路徑分享:http://www.rwnh.cn/article30/gspopo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、商城網(wǎng)站、網(wǎng)站改版營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
四平市| 庆安县| 宁都县| 六盘水市| 铁岭市| 揭阳市| 亚东县| 西乌珠穆沁旗| 富锦市| 元朗区| 玛曲县| 库尔勒市| 浠水县| 万州区| 宾阳县| 金沙县| 历史| 会昌县| 太湖县| 门源| 双柏县| 岗巴县| 娱乐| 水富县| 伊宁县| 西峡县| 宁晋县| 玉林市| 阿拉尔市| 涟水县| 阜阳市| 扶绥县| 沙田区| 鄂托克前旗| 丹江口市| 自贡市| 威远县| 安达市| 清河县| 十堰市| 宁波市|