渐进式,Objective-C 项目转 Swift 与 Swift 版本升级技巧

721 阅读1分钟

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

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

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

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


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

还要把所有的 .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 版本号,一路按照提示做。就好了

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