1瑰抵、在用OC寫代碼時(shí),我們使用PCH統(tǒng)一導(dǎo)入在絕大部分地方需要使用到的三方庫和一些宏定義举户,比如導(dǎo)入網(wǎng)絡(luò)請(qǐng)求烤宙,圖片加載,然后設(shè)置屏幕尺寸俭嘁,Debug之類的
test.pch
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
//一些大部分類需要用的三方庫
#import "AFNetworking.h"
#import "Masonry.h"
...
//debug
#ifdef DEBUG
#define ZHYLog(fmt,...) NSLog((@"\n方法: %s \n行號(hào): %d \n打印信息:" fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define ZHYLog(...)
#endif
//size
#define ScreenH [UIScreen mainScreen].bounds.size.height
#define ScreenW [UIScreen mainScreen].bounds.size.width
#define ViewH self.view.height
#define ViewW self.view.width
#endif
/* PrefixHeader_pch */
2躺枕、或者我們開始OC和Swift混編了,我們依然可以在xxx-Bridging-Header.h
,中導(dǎo)入第三方框架到Swift中使用
此時(shí)在Swift中的宏定義那就只能找個(gè)文件直接let了供填,比如Const.swift
之類的拐云。
3、當(dāng)單純使用Swift寫程序時(shí)近她。叉瘩。。一直使用OC的我找不到怎么統(tǒng)一導(dǎo)入三方庫粘捎。薇缅。。雖然說單獨(dú)導(dǎo)入也有單獨(dú)導(dǎo)入的好處攒磨。泳桦。。但是有時(shí)候還是想統(tǒng)一導(dǎo)入某一些庫娩缰。灸撰。比如R.Swift,RxSwift之類在項(xiàng)目中各處都大量使用的庫
導(dǎo)入方法一拼坎、
再要使用的類頭部import
import Foundation
import MBProgressHUD
import Rswift
適合不常用的一些三方庫
導(dǎo)入方法二梧奢、
自己在要導(dǎo)入的庫上方再封裝一層,就變成全局導(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)入方法三、
某些自己無法輕松封裝的鸟顺,或者本來已經(jīng)非常容易使用的庫惦蚊,但是又在項(xiàng)目中大量使用,如我我在項(xiàng)目用到了Then協(xié)議庫讯嫂,和R.swift本地資源加載庫蹦锋,很多地方都要用,每個(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 zyScreenH = UIScreen.main.bounds.height
/// 屏幕寬度
let zyScreenW = UIScreen.main.bounds.width
這樣使用就十分方便了