Swift调用Objective C的FrameWork

原创Blog,转载请注明出处
blog.csdn.net/hello_hwc

前言:
最近在写博客的时候,Demo提供的都是OC的代码,对于Swift都有些生疏了,所以,最近可能会集中用Swift来提供Demo源码。

很多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

3.2 修改PodFile

vim Podfile

然后修改成如图

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()
    }
}

测试,库使用成功。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...