美文网首页
Swift 统一导入三方库

Swift 统一导入三方库

作者: iLeooooo | 来源:发表于2018-08-30 11:58 被阅读24次
    1. 在用OC写代码时,我们使用PCH统一导入在绝大部分地方需要使用到的三方库和一些宏定义,比如导入网络请求,图片加载,然后设置屏幕尺寸,Debug之类的,但是Swift并没有这个,很忧伤
    test.pch
    #ifndef PrefixHeader_pch
    #define PrefixHeader_pch
    //一些大部分类需要用的三方库
    #import "AFNetworking.h"
    #import "Masonry.h"
    ...
    
    //debug
    #ifdef DEBUG
    #define NSLog(argv,...) NSLog((@"\n方法: %s \n行号: %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 */
    
    1. 当我们开始OC和Swift混编了的时候,我们可以在xxx-Bridging-Header.h,中导入第三方框架到Swift中使用,此时在Swift中的宏定义那就只能找个文件直接let了,比如Const.swift之类的。
    2. 当单纯使用Swift写程序时,一直使用OC的我找不到怎么统一导入三方库,虽然说单独导入也有单独导入的好处,但是有时候还是想统一导入某一些库。比如R.Swift,RxSwift之类在项目中各处都大量使用的库

    导入方法一:在要使用的类头部import

    import Foundation
    import MBProgressHUD
    import Rswift
    

    适合不常用的一些三方库

    导入方法二:自己在要导入的库上方再封装一层,就变成全局导入的了,比如 MBProgressHUD,先新建一个HUD.swift,然后在里面:

    import Foundation
    import MBProgressHUD
    
    ///弹窗加载提示
    class func show() {
       MBProgressHUD.showAdded(to: viewToShow(), animated: true)
    }
        
    ///隐藏所有弹窗
    class func hide() {
        MBProgressHUD.hide(for: viewToShow(), animated: true)   
    }
    

    这样在需要使用的地方直接按如下示例使用就行,不需要单独导入了

    HUD.show()
    HUD.hide()
    

    导入方法三:某些自己无法轻松封装的,或者本来已经非常容易使用的库,但是又在项目中大量使用,如我我在项目用到了Then协议库,和R.swift本地资源加载库,很多地方都要用,每个地方都去导入又非常麻烦,那么可以使用@_exported import关键字导入,这样就可以全局通用了,比如我在我的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
    这样使用就十分方便了
    

    相关文章

      网友评论

          本文标题:Swift 统一导入三方库

          本文链接:https://www.haomeiwen.com/subject/ebbfiftx.html