iOS开发:在Swift中调用oc库
先列举这个工程中用到的oc源码库:
- MBProgressHUD:半透明提示器,Loading动画等
- SDWebImage:图片下载和缓存的库
- MJRefresh: 下拉刷新,上拉加载
- Alamofire.xcodeproj和SwiftyJSON.xcodeproj是Swift的库,这篇博客主要记录调用上面几个oc的库。
第一步:将oc的源码库拖入到我们的projec,如下图。
第二步:新建一个头文件,用于引用oc的库。如下图,选择 object library 中的 头文件,拖拽到project的根目录。
注意头文件名字的命名规范:项目名称-Brdging-Header.h,如下图。
第三步:新建完成后,使用#import来引用oc库,如下图。
第四步:该步骤比较重要,选择 SexyGallery > Build Settings > 在搜索框输入 "Swift Compiler" > 选择 Objective-C Bridging Header > 键入刚才的文件名 SexyGallery-Bridging-Header.h > Command + s 保存即可。
导入成功后,接下来测试如何引用,下面以及调用MJRefresh库为例,只要UIRefreshControl声明变量能编译能通过,就说明能正常调用,具体使用方法参见MJRefresh的相关文档:
import UIKit class GalleryListViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { let refreshControl = UIRefreshControl() //下拉刷新 @IBOutlet weak var collectionView: UICollectionView! override func viewDidLoad() { super.viewDidLoad() self.configureRefresh() } //设置下拉和上啦刷新 func configureRefresh(){ self.collectionView?.header = MJRefreshNormalHeader(refreshingBlock: { () in print("header") self.RefreshData() self.collectionView?.header.endRefreshing() }) self.collectionView?.footer = MJRefreshAutoFooter(refreshingBlock: { () in print("footer") self.loadData() self.collectionView?.footer.endRefreshing() }) } }
完!