1. 条件编译
有时候我们需要一些代码只在DEBUG模式下生效,就用到了条件编译
在OC中直接这样就可以:
#if DEBUG
code0
#else
code1
#endif
在Swift文件中直接这样使用发现在Xcode的Debug模式下,走的却是else分支。查了下资料知道Swift是不支持宏的,但还是可以使用条件编译的,需要额外做些设置。
设置路径:BuildSettings -- Swift Complier - Custom Flags
- 设置Active Compilation Conditions
在Debug模式下加上DEBUG
- 设置Other Swift Flags
在Debug模式下加上-D DEBUG
以上2中方式都可以,需要注意跟OC的区别不需要设置DEBUG=1
2. OC、Swift相互调用
首先需要创建一个桥接文件TargetName-bridging-header.h
;其次在Build Settings -- Swift Compiler - General -- Objective-C Bridging Header
设置这个桥接文件的路径
- OC调用Swift
在OC文件中通过#import "ModuleName-Swift.h"
,这里的ModuleName就是模块名,比如是主项目中的Swift文件,则ModuleName就是TargetName
- Swift调用OC
我们需要将需要暴露给Swift的类,import到桥接文件中
网友评论