swift conversion方法


  • 基础知识
  • swift 是strong type的面相对象语言。
    和objective c比起来最大的差别是objective c是基于消息急着的,每个方法的调用都是向对象发送了一个消息。而且object c允许向空对象(nil)发送消息,相当于调用其它语言null object的方法;而这在其它语言里面是不被允许的,会抛异常。 和比如c++ 相比最大的差别是,c++中通过指针来间接指向对象。而在swift中通过optional,而且optional的语法比较怪。
    苹果官网的这篇 swift tuor可以帮助你学习swift的基本语法。学会这些基本语法基本可以开始coding,遇到不会的可以google一下或者查 guide 和 reference
    此外,对wrap/unwrap, implicit optional, optional chain 最好额外仔细学一下
    转化步骤
    这篇文章中讲到如何在swift 中调用objective c,或者如何在objective c中调用 swift。
    我们最好只在swift中调用objective c。因为我们的项目已经分层UI->BLL –>Data Access。所以我们可以逐层进行转换。先把UI层的controller转化成swift;然后把UI层的View转换成swift;然后把BLL层转换成swift;然后把Data Access层转换成swift,最后把通用的Utility转换成swift,最后再做优化代码清理。
    不需要在一个sprint中把工作全部做完,可以分到几个sprint里面。
    常见问题
  • 在转换的过程为了提高速度可以用一下工具,网站把oc代码自动转换成swift再做修改;不过这些工具一般有bug,会有各种问题,需要手动修改。下面是几个工具
    https://objectivec2swift.com/#/converter/
    https://iswift.org/try
  • debug中比较容易遇到的问题是在oc中调用空指针的方法是允许的,但在swift中会出异常EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

猜你喜欢

转载自blog.csdn.net/lklvzoely/article/details/82593305