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

Swift调用Objective C的FrameWork相关推荐

  1. 如何从Swift调用Objective-C代码?

    本文翻译自:How do I call Objective-C code from Swift? In Swift, how does one call Objective-C code? 在Swif ...

  2. 用swift+Metal shader文件编译framework动态库

    若想用swift语言生成库则只能生成动态库,若是纯swift代码脚本,问题不大,按一般流程就行. 若是编译的库中有shader文件则需要先编译出Metal库.具体方法可采用如下的方式. 把shader ...

  3. swift调用oc_OC与Swift混编,三种场景的实现方式

    多语言并存时期,混编成为一种必须的方式 ,在多场影中实现OC和Swift语言的并存原来是如此简单 第一种场景,App中实现混编 创建桥接文件*.h 新建一个桥接文件,New File 选择 Heade ...

  4. Swift 调用微信分享

    配置: 1:先下载微信分享的SDK.再复制到项目里.如图: 2: 创建桥接文件.名为bridge.h,内容如下: #ifndef bridge_h #define bridge_h#import &q ...

  5. 翻译:Swift 5创建和使用Framework, XCFramework 从入门到精通

    说明 了解如何构建iOS框架,该框架可让您在应用程序之间共享代码,模块化代码或将其分发为第三方库. 下载代码 更新说明:本教程已由Emad Ghorbaninia更新到iOS 14,Xcode 12和 ...

  6. swift调用支付宝

    开发环境xcode7.1 运行环境 IOS9.1 到支付宝面面下载IOS的移动支付功能的SDK(Android和IOS是同一个zip文件下) http://doc.open.alipay.com/do ...

  7. Swift调用第三方OC项目

    第一步:创建和配置Bridging-Header.h Swift与OC进行混编,首先要有一个.h文件,这里使用Bridging-Header.h然后设置项目的Build Settings--Swift ...

  8. swift 调用 oc [cannot find interface declaration for ‘ BaseViewModel’ , superclass of ‘indexViewModel’

    看报错,indexViewMode找不到父类BaseViewModel 在桥接文件里 有#import "IndexViewModel.h",没有baseviewmodel,然后加 ...

  9. Swift 调用C++代码

    github地址:https://github.com/LINGLemon/LXFSwiftApp 1.创建c++文件:Person.cpp和Person.hpp // // Person.cpp / ...

最新文章

  1. python的类属性和方法_Python中类属性、实例属性和实例方法的区别
  2. python为什么用号做注释符_Python为什么用#号作注释符?
  3. Spring MVC的表单控制器——SimpleFormController .
  4. pcm 采样率转换_PCM编码与Waveform音频文件(.wav)格式详解
  5. fortran安装_如何在 CentOS 8 上安装 GCC
  6. LeetCode 646. Maximum Length of Pair Chain
  7. 网站“设为首页”代码,“加入收藏”代码
  8. crontab命令详解
  9. UE4为什么使用C++替代UnrealScript?
  10. SpringMVC学习(一)SpringMVC入门 、HelloSpringMVC程序、SpringMVC执行原理
  11. Boot Option中没有USB启动选项的解决办法
  12. 饭饭的零基础神经网络学习笔记——python,numpy,scipy,matplotlib简明教程
  13. 图片外链方法大全: 免费的图床! 告别新浪图床 和 CDN
  14. IPFS系列 - 体验 IPFS Docker
  15. 直角坐标系与极坐标系了解与转换
  16. java web简单的网上名片管理系统
  17. 如何在工作中提升自己
  18. Sqlite3 学习记录
  19. unity3d做俄罗斯方块
  20. window下Nexus私服高级搭建

热门文章

  1. Coursera自动驾驶课程第12讲:Semantic Segmentation
  2. Apollo进阶课程㉘丨Apollo控制技术详解——基于模型的控制方法
  3. 机器学习笔记(九):应用机器学习的建议
  4. 添加一列_Joom平台CSV文件如何添加产品?CSV文件添加产品流程一览
  5. deepin部署python开发环境_deepin系统下部署Python3.5的开发及运行环境
  6. java中如何生成随机数?
  7. 安农大计算机调剂,2020年安徽农业大学硕士研究生调剂公告
  8. php min命令,php min函数怎么用?
  9. C++ 重载函数调用运算符 | 再探lambda,函数对象,可调用对象
  10. redis——Java整合