Swift与OC混编

OC中使用Swift

  1. 在工程的Build Setting中把defines module设为YES
  2. 把product module name设置为工程项目的名字
  3. oc文件中导入projectName_swift.h中
#import "工程名-Swift.h"
注意:projectName_swift.h这个文件是系统自己创建的,勿手动创建
如果打不出方法名需要在Swift方法名前加 @objc

Swift中使用OC

  1. 创建桥接文件
    1.1 自动创建
    1.2 手动创建
    file>new>file>(iOS or OS x)>source>header file
    工程名-Bridging-Header.h (按照这样的名字创建)

  2. 设置文件路径
    在项目的Build Settings选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是目录!

在targets->build settings ->Object-C Bridging Header 位置


设置文件路径

2.1 Swift调用OC方法,关键还是桥接头文件,必须创建并配置正确。然后把你想要调用的OC或C的头文件导入到桥接头文件里,Swift才能正常调用OC和C
2.2 OC要想使用某个类,必须有头文件,而swift文件却没有,对于OC调用swift 的头文件比较特殊.因为头文件里面的机制是自动生成的
2.3 凡是用Swift写的类,如果不继成自NSObject或NSObject 的派生类,哪么编译后将不会生成对应的转换类。从而使得OC 中找不到相应的声明。

你可能感兴趣的:(Swift与OC混编)