在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
https://www.cnblogs.com/upliver/p/5138160.html 如何在Swift的代码中使用OC的代码, 在OC的代码中使用Swift的代码?随着苹果公司对Swift的推广力度不断加大,市场上很多的项目都在逐步的转向使用Swift开发,但由于各种原因,公司不可能一时间直接冲OC转向Swift,因此中间就会有一个过渡期,需要我们程序员进行OC和Swift两种语言之间进行混合编程.下面我就给大家介绍一下,混编之前我们应该怎么配置. 一、OC的代码中使用Swift代码.
并不需要导入需要使用的.Swift文件本身,只要确保导入了第三步中的文件,所有的Swift文件就全部可以直接使用。 二、Swift的代码中使用OC代码.
https://blog.csdn.net/xiaoxiaocode/article/details/80114481 2018年04月27日 22:49:29 xiaoxiaocode 阅读数:553
在swift开发过程中我们难免会使用一些OC的开源库来附注项目开发。这就涉及到OC和swift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC的第三方库,今天就给大家介绍一下自己的使用过程。 一、导入第三方库 这里需要注意点,我使用pod导入OC的第三方库SDCycleScrollView,然后进行配置出现找不到SDCycleScrollView的错误,最后还是直接复制SDCycleScrollView到项目中才解决的问题,这一点还不知道为什么,希望清楚的这个问题的同学指正。 二、创建头文件 创建一个头文件,然后将SDCycleScrollView.h文件导入到头文件中。
三、配置桥接头文件 在Build Setting里面搜索bridging,然后向Objective-C Bridging Header中添加我们创建的头文件的地址,如下图: 四、使用OC方法 还是使用swift的方法调用就可以。 let imageNames = ["1.png", "2.png", "3.png", "4.png","5.png"] let cycleScrollView = SDCycleScrollView.init(frame: CGRect (x: 0, y: 0, width: self.view.frame.size.width, height: 200), shouldInfiniteLoop: true, imageNamesGroup: imageNames) cycleScrollView?.delegate = self self.view.addSubview(cycleScrollView!)
五、OC代理方法的使用 第三方的方法会自动转成swift的方法,所以只要还是使用swift的方法调用就可以啦! /* 1、按照swift的代理执行方式来就可以。 */ extension RecommendVC : SDCycleScrollViewDelegate{ //图片滚动回调 func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didScrollTo index: Int) { print("图片滚动回调\(index)") } //点击图片回调 func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didSelectItemAt index: Int) { print("点击图片回调\(index)") } } iOS中Objective-C和Swift混编及第三方框架相互调用https://www.jianshu.com/p/a663f51ed61a 本文将详细介绍一下OC和swift混编问题,其中涉及两大部分:1)oc项目中混编swift的实现; 2)oc或者swift第三库的导入及使用. 1 oc项目中混编swift 在oc项目中想要使用swift,并且实现相互调用,需要一些基本的设置,桥接文件也是必须得. 1. 1 基本设置支持swift 在bulid setting中找到 Packaging 下的 define module,将是否定义模块布尔值改成YES,这样OC就可以支持swift了.
define module.png
1. 2 创建桥接文件 桥接文件可以在你创建swift文件的时候Xcode自动生成,也可以自己手动创建,手动创建也就是一个头文件(.h文件). 这里需要说明一点的是,在oc项目中创建的swift文件必须都要继承自NSObject基类,而你自己想要创建的一些类可以这样来创建: 创建步骤1
1.png 创建步骤2 2.png
创建步骤3 这里选择Create Bridging Header,如果不选的话,那就自己手动创建,然后指定索引位置 3.png
创建步骤4
4.png
第三步中如果没有创建桥接文件的话,手动创建一个桥接文件,然后build setting 中搜索 Objective-C Bridging Header,将你手动创建的桥接文件路径输入进去 桥接文件设置 桥接文件设置
1.3 swift中调用oc文件 现在基本上可以实现swift调用oc中代码了,首先在桥接文件中导入你想在swift中用到的oc类 导入oc类 导入oc类
使用oc中的类
1. 4 oc中调用swift文件 oc中调用swift文件
2 oc和swift第三方库的使用 如果你的项目用cocoapods来管理你使用的第三方库,并且OC项目中已经集成了多个第三方库,那么这时你想在导入swift编写的第三方库,这时你不能用cocoapods管理第三方库了,因为Swift连接时不支持静态库,cocoapods也在其Podfile中有说明: Uncomment the next line if you're using Swift or would like to use dynamic frameworks use_frameworks! 翻译过来就是:如果你想使用swift或者动态库,就把下面一行注释打开 然而打开后你是编译不过去的,这时需要手动导入swift库
使用swift或者动态库使用use_frameworks
下面手动导入Alamofire作为例子: 1)首先下载Alamofire项目源码,解压 Alamofire项目源码
可以删除多余的不需要的文件,比如Example文件夹,等等
2)将Alamofire项目整个拖到你的项目中 拖到自己项目中
3)在Embedded Binaries中添加Alamofire.framework Embedded Binaries中添加Alamofire.framework
这样就可以cocoapods管理OC第三方库,swift第三方库手动管理,实现不同第三方框架的调用.
作者:偶尔登南山 链接:https://www.jianshu.com/p/a663f51ed61a 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
|
请发表评论