- 在用OC寫代碼時(shí)报账,我們使用PCH統(tǒng)一導(dǎo)入在絕大部分地方需要使用到的三方庫(kù)和一些宏定義纵势,比如導(dǎo)入網(wǎng)絡(luò)請(qǐng)求,圖片加載泽疆,然后設(shè)置屏幕尺寸户矢,Debug之類的,但是Swift并沒有這個(gè)殉疼,很憂傷
test.pch
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
//一些大部分類需要用的三方庫(kù)
#import "AFNetworking.h"
#import "Masonry.h"
...
//debug
#ifdef DEBUG
#define NSLog(argv,...) NSLog((@"\n方法: %s \n行號(hào): %d \n打印信息:"argv), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define NSLog(...)
#endif
//size
#define Screen_W [UIScreen mainScreen].bounds.size.height
#define Screen_H [UIScreen mainScreen].bounds.size.width
#endif
/* PrefixHeader_pch */
- 當(dāng)我們開始OC和Swift混編了的時(shí)候梯浪,我們可以在xxx-Bridging-Header.h,中導(dǎo)入第三方框架到Swift中使用,此時(shí)在Swift中的宏定義那就只能找個(gè)文件直接let了瓢娜,比如Const.swift之類的挂洛。
- 當(dāng)單純使用Swift寫程序時(shí),一直使用OC的我找不到怎么統(tǒng)一導(dǎo)入三方庫(kù)眠砾,雖然說(shuō)單獨(dú)導(dǎo)入也有單獨(dú)導(dǎo)入的好處虏劲,但是有時(shí)候還是想統(tǒng)一導(dǎo)入某一些庫(kù)。比如R.Swift褒颈,RxSwift之類在項(xiàng)目中各處都大量使用的庫(kù)
導(dǎo)入方法一:在要使用的類頭部import
import Foundation
import MBProgressHUD
import Rswift
適合不常用的一些三方庫(kù)
導(dǎo)入方法二:自己在要導(dǎo)入的庫(kù)上方再封裝一層柒巫,就變成全局導(dǎo)入的了,比如 MBProgressHUD,先新建一個(gè)HUD.swift,然后在里面:
import Foundation
import MBProgressHUD
///彈窗加載提示
class func show() {
MBProgressHUD.showAdded(to: viewToShow(), animated: true)
}
///隱藏所有彈窗
class func hide() {
MBProgressHUD.hide(for: viewToShow(), animated: true)
}
這樣在需要使用的地方直接按如下示例使用就行谷丸,不需要單獨(dú)導(dǎo)入了
HUD.show()
HUD.hide()
導(dǎo)入方法三:某些自己無(wú)法輕松封裝的堡掏,或者本來(lái)已經(jīng)非常容易使用的庫(kù),但是又在項(xiàng)目中大量使用刨疼,如我我在項(xiàng)目用到了Then協(xié)議庫(kù)泉唁,和R.swift本地資源加載庫(kù)鹅龄,很多地方都要用,每個(gè)地方都去導(dǎo)入又非常麻煩亭畜,那么可以使用@_exported import關(guān)鍵字導(dǎo)入,這樣就可以全局通用了扮休,比如我在我的Const.swift中:
import Foundation
import UIKit
@_exported import Hue
@_exported import RxSwift
@_exported import RxCocoa
@_exported import Rswift
@_exported import Then
/// RxSwift 回收池
let disposeBag = DisposeBag()
/// 屏幕高度
let Screen_H = UIScreen.main.bounds.height
/// 屏幕寬度
let Screen_W = UIScreen.main.bounds.width
這樣使用就十分方便了