Swift调用Objective C的FrameWork

很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免遇到的的一个问题,本文以AFNetworking为例,讲解如何跨语言调用。


第一步

创建一个空的工程 
注意,语言选择Swift 


第二步,创建bridging-header

这个文件的作用,就是把OC的接口暴露给Swift。有两种方式 
方式一 
创建一个OC文件,然后点击确定 
 
弹出是否要创建Bridging-Header,点击确定,这样会生成三个文件,其中的一个就是我们要用的SwiftUseAFNetworkingDemo-Bridging-Header.h 


方式二,创建任意头文件,然后在buildSetting里设置为bridging-header 
创建一个头文件,命名为bridge(任意) 
 
在build setting里设置 


第三步,安装库(要提前安装Cocoa Pod)

然后,我的习惯是用命令行来修改这个文件 
到工程的目录 
3.1初始化pod

pod init
  • 1

3.2 修改PodFile

vim Podfile
  • 1

然后修改成如图    3.3安装库  这里可能等的时间有点长,等着就是了

pod install

3.4 重新打开工程,注意,要打开Pod的工程 


第四步,在头文件中import


第五步,测试

完整代码

//
//  ViewController.swift
//  SwiftUseAFNetworkingDemo
//
//  Created by huangwenchen on 15/4/8.
//  Copyright (c) 2015年 huangwenchen. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    lazy var manager:AFURLSessionManager = {
        var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
        var deaultmanager = AFURLSessionManager(sessionConfiguration: configuration);
        return deaultmanager;
        }()

    override func viewDidLoad() {
        super.viewDidLoad()
        var url = NSURL(string: "http://jsonplaceholder.typicode.com/posts")
        var request = NSURLRequest(URL: url!)
        var dataTask = manager.dataTaskWithRequest(request, completionHandler: { (response:NSURLResponse!, data:AnyObject!, error:NSError!) -> Void in
            NSLog("%@",data.description)
        })
        dataTask.resume()
    }
}

测试,库使用成功。

转载于:https://www.cnblogs.com/Free-Thinker/p/4966879.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值