1

一个老旧的 Objective-C 项目,怎么转 Swift

新建一个 Swift 工程,删除 Storyboard 文件。

然后拷贝 Objective-C 项目的 Storyboard 文件,拷贝 .h 和 .m 文件(一般不拷贝 AppDelegate.h/.m ), 然后放入新的工程

复制粘贴大法好, 代码层面涉及比较少


Swift 项目中,使用 Objective-C 代码,就要用到桥接文件

Screen Shot 2019-12-11 at 10.37.16 AM.png

还要把所有的 .h 文件,引用一遍,做 import.

复制比较琐碎


怎样高效复制?

脚本大法好
 find . -type f -name '*.h' -exec bash -c '
   for result; do
       got=${result:2}
       printf "#import \"%q\"\n" "$got"
     
   done
 ' _ {} + | sort -n

就可以一次拷贝了

简单解释脚本:

 find . -type f -name '*.h' 

查找到的文本,是这样的

./AudioEngine.h
./InstrumentViewController.h
./MixerViewController.h

处理后的文本,长这样

#import "AudioEngine.h"
#import "AudioEngineViewController.h"
#import "AudioViewController.h"

以后慢慢处理源代码部分


Swift 版本升级技巧,

切换 Swift 版本号,一路按照提示做。就好了

Screen Shot 2019-12-11 at 10.46.33 AM.png

如果重新写,很久以前的、不受支持 Swift 项目,相对慢一些


邓轻舟
384 声望13 粉丝

我叫邓江洲,准备面试中