这次主要看 在已有OC项目中添加swift文件
一、swift调用OC
首先添加swift:
系统弹出询问框,点击Create Bridging Header按钮,创建桥接文件,桥接文件名称为:
“项目名-bridging-header.h”
该桥接文件的作用:swift 调用 OC。
swift需要的OC类,均需要在桥接文件中import
设置桥接文件路径:
Build Settings->Swift Compiler-General->Objective-C Bridging Header
该路径可以为虚拟路径 也可以为实际路径
在swift中引用OC第三方库:
以MJRefresh为例:
Add Files之后,点击Options,勾选Copy items if needed、Create groups
点击add
添加第三方库之后,需要更改search paths
Building Settings -> Search Paths -> User Header Search Paths
双击空白处,填写${SRCROOT},选择recursive,意为添加了根目录下所有文件
更改之后如图显示,** 意为根目录下的所有文件
注意!!!
swift 中引入OC第三方库的时候
要通过 Add Files to 来添加
否则项目容易找不到第三方库文件,编译不过出现如下错误:
_OBJC_CLASS_$_文件名,No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386)
二、OC调用Swift:
OC调用swift主要依托的桥接文件是:“项目名-Swift.h”
该桥接文件作用:OC调用Swift
配置:
Building Settings -> Packaging
将Defines Module 设置为Yes
Product Module Name 为当前工程名称,它也关系着桥接文件的名称
若Product Module Name 为XXX,则桥接文件名为:“XXX-Swift.h”
该文件为系统自己创建,并没有显示的展示出来,通过command+左键 可以查看:
注意!!!
“项目名-Swift.h”文件只能在.m文件中引用,在.h文件中引用会报错!
原因未知,我初步估计可能是Build Phases -> Compile Sources 中,编译源只能添加.m文件,调查清楚后再做具体修改。
网友评论