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()
})
}
}
完!
iOS开发:在Swift中调用oc库的更多相关文章
- 在 Swift 中调用 OC 代码
前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架.Objective-C 框架或 C 类库. ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- 如何在swift中实现oc中的分类
在oc中为了增强已有类的功能,我们经常使用分类.使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展. 但是在swift中没有分类这种写法了.相对应的是swift中只有扩展(Ext ...
- VS开发】C中调用C++文件中定义的function函数
[VS开发]C中调用C++文件中定义的function函数 标签(空格分隔): [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 精要一揽 C调用 ...
- 【VS开发】MFC中调用C函数模块的解决方案
[VS开发]MFC中调用C函数模块的解决方案 标签(空格分隔): [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:最近调试基于MFC的程序 ...
- iOS开发笔记--什么时候调用layoutSubviews
iOS开发笔记--什么时候调用layoutSubviews 分类: iOS2014-04-22 16:15 610人阅读 评论(0) 收藏 举报 今天在写程序时候遇见layoutSubviews触发时 ...
- JS与OC交互,JS中调用OC方法(获取JSContext的方式)
最近用到JS和OC原生方法调用的问题,查了许多资料都语焉不详,自己记录一下吧,如果有误欢迎联系我指出. JS中调用OC方法有三种方式: 1.通过获取JSContext的方式直接调用OC方法 2.通过继 ...
- Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)
一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...
- swift 中使用OC第三方库(以AFNetworking为例)
首先呢 把你需要的第三方库导入到你的项目中来 具体怎么导入 这不是这篇的重点 看上一篇 废话不多 直接上 (1)在项目中直接建一个 oc 的控制器 然后xcode会提醒你 要不要建造桥接文 ...
随机推荐
- HDU 4811 Ball 贪心
题目链接: 题目 Ball Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 问题描述 ...
- Matlab与微积分计算
一.极限问题的解析解 1.1 单变量函数的极限 格式1: L= limit( fun, x, x0) 格式2: L= limit( fun, x, x0, ‘left’ 或 ‘right’) > ...
- 剑指offer--面试题15
题目:打印单向链表中倒数第k个节点 以下为自己所写代码,未经过验证,只是写个思路... #include<iostream> #include<vector> #include ...
- jsp的<%@ include file="jsp/common.jsp" %>报错误Duplicate local variable basePath
将公共引入的文件放到common.jsp中,其他页面引入该jsp即可使用 <%@ page language="java" import="java.util.*& ...
- uva 11375
思路是刘书上的 但是个高精度 java 大数 ~~ import java.util.*; import java.io.*; import java.math.BigInteger; public ...
- contentType,pageEncoding,charset,setCharacterEncoding
contentType,pageEncoding,charset,setCharacterEncoding HTML中的meta标签,以及HTTP Header. -------------字符集.字 ...
- NET Framework 4 中的新 C# 功能
http://msdn.microsoft.com/zh-cn/magazine/ff796223.aspx C# 编程语言自 2002 年初次发布以来已经有了极大的改善,可以帮助程序员编写更清晰易懂 ...
- MongoDB 性能优化五个简单步骤
MongoDB 一直是最流行的 NoSQL,而根据 DB-Engines Ranking 最新的排行,时下 MongoDB 已经击败 PostgreSQL 跃居数据库总排行的第四位,仅次于 Oracl ...
- Create a method synchronized without using synchronized keyword
Actually, lots of ways: No need for synchronization at all if you don't have mutable state. No need ...
- sudo: /etc/sudoers 的模式为 0551,应为 0440
环境:Ubuntu 12.04.4 LTS 32bit 本想修改/etc/sudoers文件,取消sudo权限的密码.但是因为sudoers文件无‘w’(写)的权限,然后用命令加写权限的时候加错了,加 ...