扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在ios的OC和Swift混合开发无非是2种,一种是在OC的项目中使用Swift语言开发,这里就需要创建Swift文件(或者引用Swift写的的第三方库),另一种是在Swift项目中使用OC语言开发,这里就需要创建OC文件,(或者引用OC写的的第三方库)
创新互联建站专注于企业营销型网站、网站重做改版、惠东网站定制设计、自适应品牌网站建设、H5高端网站建设、商城网站定制开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为惠东等各大城市提供网站开发制作服务。
首先我们在一个已有的OC的项目中,创建一个Swift文件
这里Xcode就会自动提示我们如:图1
Would you like to configure an Objective-C bridging header?
Adding this file to ocProjectUseSwift will create a mixed Swift and Objective-C target. Would you like Xcode to automatically configure a bridging header to enable classes to be accessed by both languages?
提示我们创建一个桥接的头文件,当我点击 “ Create Bridging Header”,Xcode就给我们自动创建,自动创建的规则是:项目名+ "-Bridging-Header.h" 如图2
同时在项目中创建一个Swift文件
然后在在 targets - Build Settings - Packaging 中设置Defines Module 为YES
设置完后开始使用,怎么在oc中使用Swift的类呢?
重点: 在文件中引用 #import "ocProjectUseSwift-Swift.h" 记住不是我创建的SecondVC.swift,是“项目名-Swift.h"文件名 ,引入这个文件就引入了所有的Swift文件内的类、方法、属性
说明:这个文件是系统自动创建,自动添加所有我们创建的Swift的类的方法和属性
前提是要在方法和属性前面要加@objc 如图3:
用@objc声明好之后,在我们引用的是“项目名-Swift.h"文件名的 #import "ocProjectUseSwift-Swift.h" 内就看到有标记了如图4
这里分了3块,红色和绿色标记框内是我们自己标记的oc可用的属性和方法,蓝色框内是系统自己生成的oc可以初始化方法
具体使用就在oc文件中,如图5:
此事,在这个OC创建的项目中,我们创建的Swift文件怎么使用OC创建的类呢?
这里就用到我们创建的桥接头文件了,在图2中的桥接头文件,引入OC的头文件,如图6
就这样很简单,所以Swift文件的类都可以使用这个OC文件内的类了,使用起,和OC调用OC的类一样,如如图7和图8
Swift的项目中,第一次创建OC的文件,此时系统会自动帮我们创建桥接头文件,如图9
然后就有了和图2一样的桥接头文件,剩下的就和图6一样,在桥接头文件内引入头文件,即可使用OC的类,第三方库如果也是OC写的,在引入的时候也自动会加这个桥接头文件,当然一个项目只能加一次,加过的就不需要加了
1.原生开发(Native App开发):像盖房子一样,先打地基然后浇地梁、房屋结构、一砖一瓦、钢筋水泥、电路走向等,原生APP同理:通过代码从每个页面、每个功能、每个效果、每个逻辑、每个步骤全部用代码写出来,一层层,一段段全用代码写出来
此种APP的数据都保存在本地,APP能及时调取,所以相应速度及流畅性有保障
2.混合开发(HTML5开发):这个就相当于一种框架开发,说白了就是网页;该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。
混合APP还有一种是套壳APP,套壳APP就是用H5的网页打包成APP,虽然是APP能安装到手机上,但是每个界面,全部是网页。此种APP数据都保存在云端,用户每次访问都需要从云端调取全部内容,这样就容易导致反应慢,每打开一个网页或点一个按钮都需要等半天。
混合开发的优缺点:
优点是:
1、开发效率高,节约时间同一套代码Android和IOS基本都可用
2、更新和部署比较方便,不需要每次升级都要上传到App Store进行审核了,只需要在服务器端升级就可以
3、代码维护方便、版本更新快,降低产品成本
缺点是:
1、由于不能直接操控硬件有些方面性能不是很好
2、另外有技术比较新版本的兼容性比较差,还有就是即懂原生开发又懂H5开发的高端人才难找。
混合App开发是未来的趋势,目前混合开发中使用的技术也很多,主要的混合开发技术有jQuery Mobile、React Native、Cordova、APICloud、AppCan等。虽然混合开发能够提高效率节省成本,但也有很多的限制,除了硬件、缓存等的限制,各大平台之间的兼容性也不足。有的也比较消耗资源。
现在市场上存在的几种开发方式如下:
a.web网页加壳生成APP
web网页加壳生成APP的开发方式,先花几百块钱买个现成的手机网站模板,在加壳打包一个APP只需要5分钟,但是做出来的效果很差,耗流量,浏览体验极差,访问速度慢等等。部分开发商利用客户不懂,把这种5分钟速成的东西,当成原生态开发的APP去欺骗创业者。卖几千到几万的价格。而创业者很多时候还自以为捡了便宜(问了十几家这家最便宜)。
b.Web网页+原生态混编(网页部分占80%以上)
混编方式的APP效果比第一种稍好。但是如果要做出接近原生态的效果,需要不断的优化和改版,花的钱不比原生态少。而如果不对网页和系统优化,只是简单的拼凑。那么做出来的效果和web加壳的差不多.
c.HTML5开发
成本大概是原生态APP的50%到30%,也是比较接近原生开发能达到效果的一种方式。但受到很多限制。各大平台兼容性还不足,相对来说还处于过渡期,同时比较耗系统资源。在低配的手机上更卡。手机淘宝的APP目前就是HTML5+原生态混编的,相对来说在很多低配的手机上还是比较卡的。最近优化了很多,但是早期的表现很不尽人意。Facebook和京东都尝试过HTML5,同时也吃了不成熟的亏。HTML5的未来或许是美好的,但是这期间的试错成本小公司不一定承受得起。
d.原生态开发
是目前最常用和最成熟的方式。越重视细节成本越高。一般根据具体功能要求一个APP的开发成本从几千块到几千万不等。
根据实际情况,想做一个高性能的H5 iOS应用,那么问题来了~应该用哪一款的混合开发框架最好?好用且后期维护也方便
如果对机械设备有需求的,请到高臻机械网站去了解一下。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流