swift从2014年6月2日诞生以来,到现在已经过了6年了,好像swift都不温不火。那么我想说这只是个假象,现在swift已经比Object-C排名靠前很多了,公司对swift要求也越来越强硬了。之前学过swift一直未使用,忘得差不多了。现在开始从零学习,我会将我学习之路 整理成博客分享给大家。希望对有需要的朋友有帮助,如果帮助到了你,请帮忙点赞,对在下有什么建议也欢迎留言、建议。
下面是2019——TIOBE语言排行榜,iOS中的swift还是进入了前10。
Objective-C打入前20第12还是可观的。
但到了2020年,Objective-C已经快排不到前20了,位子已经岌岌可危。相信2021年Objective-C已经要慢慢淡出排行榜了。
iOS要往深度发展swift语言就刻不容缓,现在的跨平台语言也慢慢需要混合开发,融入到iOS开发中。开启swift学习之旅,续写博客作为学习swift的一个记录。
首先说下OC和swift的runtime区别。OC中在runtime时可以拿到类的方法和属性,而swift里面是无法获取方法和属性,所以无法通过runtime来替换方法。但如果是继承OC的类,swift在runtime时候方法和属性被替换。还有就是加了@objc标识的方法、属性无法保证都会被运行时调用,因为Swift会做静态优化。要想完全被动态调用,必须使用dynamic修饰。使用dynamic修饰将会隐式的加上@objc标识。而继承OC的类是默认被dynamic修饰。
创建swift项目,并选择swift语言
创建好后打开终端进入到目标文件夹,执行touch Podfile(默认已经装好了pod),这里我添加了 AFNetworking,Masonry两个框架。然后pod install。然后项目如下图所示。Podfile文件格式是这样的。
pod管理和oc类似。视图创建和Masonry用法就发生变化。主要swift更加趋向于链式编程,大部分都是用点语法来调用。然后就是runtime机制下无法在获得类的方法和属性,属于在runtime时候无法替换方法。这也使得一些利用runtime机制来做热更新的技术得不到开展,所以很多公司还在使用oc,毕竟可以通过runtime来替换方法达到热更新。当然一些跨平台技术做热更新就更加方便了,但是随着苹果对热更新的越来越严格审查,我觉得放开跨平台技术上架苹果商店这是苹果应该审查的地方,也正因为跨平台能热更新也是它被追捧的另一个原因。苹果对于这个容忍我想在后面会慢慢意识到这一点问题,苹果允许跨平台这也影响到了swift的使用和欢迎程度。但我想苹果慢慢发现跨平台的热更新,慢慢再禁止,swift的活跃程度就会提高。但这可能还需要一个段时间发觉吧。