OC项目逐渐向swift转移--踩坑淌雷-0

1 . 创建swift项目

跟创建OC项目一样,只不过改成选择swift语言而已

OC项目逐渐向swift转移--踩坑淌雷-0_第1张图片
AB041354-42E1-45DE-8F9B-CFF295D73CF4.png

2 . 搞桥接文件

桥接文件可以自动生成 也可以自己自定义

自动生成桥接文件

在项目中没有OC文件情况下,创建第一个OC文件系统会提示是否自动生成桥接文件,点creat就ok啦~~~~(推荐 方便快捷)

OC项目逐渐向swift转移--踩坑淌雷-0_第2张图片
CBF997B0-E1E6-41A1-B593-D2DDFB966F54.png
OC项目逐渐向swift转移--踩坑淌雷-0_第3张图片
DD6F7B7E-E34E-4B72-BA59-080AC9041901.png
DE5036D4-4E38-41F2-9691-A87E79521299.png

自动生成的桥接文件系统会自动设置无需关心多余设置 只需要在此文件中把swift中需要用到的OC类import就可以了

//自定义
#import "KINGAllExtension.h"
#import "KINGAllDefine.h"
#import "KINGNetWorkHandler.h"
#import "KINGDataBase.h"
自定义桥接文件

创建一个.h文件,在buildSettings搜索bridging header 如下图就可以了

DE5036D4-4E38-41F2-9691-A87E79521299.png

3 . 把oc代码粘贴到新项目中

这步就比较简单了,直接按原有架构复制粘贴过来,在AppDelegate中把代码实现

OC项目逐渐向swift转移--踩坑淌雷-0_第4张图片
3150A394-B3A3-45F9-AA85-9337845B0AA6.png

我踩到的坑s

坑1.自定义类型不识别

在原有OC文件中,有用到自定义类作为方法参数或者返回值时就会出现问题.如 : 上面声明的类,下面使用的时候就是一直提示unknown type name

OC项目逐渐向swift转移--踩坑淌雷-0_第5张图片
FDB8540E-4538-4C6C-BEBE-76832EEB0B3C.png

用到的文件写到pch文件中,设置pch文件,问题解决了但没研究透到底是什么原因.分析原因可能是系统对pch文件有进行提前编译起到的作用.

坑2.模拟器运行正常,真机无法运行

OC项目逐渐向swift转移--踩坑淌雷-0_第6张图片
586CCD8E-80E3-466A-9E19-F69E712A0E35.png

各种解决方式都试过了

http://stackoverflow.com/questions/26024100/dyld-library-not-loaded-rpath-libswiftcore-dylib

通过各种排除发现,不仅仅是项目的问题,新建swift项目不写代码直接也无法运行,怀疑xcode有问题,更新xcode到7.3.1没解决问题
下载xcode8.0beta 安装后运行ok,而且用7.3运行也ok了,未搞清楚原因,可能安装8.0时候对xcode某些设置进行了重置.

坑3.pod 和git无法使用

安装了两个xcode导致无法识别,需要进行选择

sudo xcode-select --switch /Applications/Xcode7.3.1.app搞定

你可能感兴趣的:(OC项目逐渐向swift转移--踩坑淌雷-0)