桥接问题
桥接
如何在Swift和Objective-C中相互调用
Swift调用OC
OC调用Swift
NS_SWIFT_NAME
- 在Objective-C中,重新命名在swift中的名称
NS_SWIFT_UNANAILABLE
- 在Swift中不可见,不能使用
Swift和Objective-C混合调用踩坑指南
Subclass
- 对于自定义的类而言,Objective-C的类,不能继承自Swift的类,即要混编的OC类不能是Swift类的子类。反过来,需要混淆的Swift类可以继承自OC的类
宏
Swift独有特性
- Swift中有许多OC没有的特性,比如,Swift有元组、为一等公民的函数、还有特有的枚举类型。所以,要使用的混编文件要注意Swift独有属性问题
NS_REFINED_FOR_SWIFT
- Objective-C的API和Swift的风格相差比较大,Swift调用Objective-C的API时可能由于数据类型等不一致导致无法达到预期(比如,Objective-C里的方法采用了C语音风格的多参数类型;或者Objective-C方法返回NSNotFound,在Swift中期望返回nil)。这时候就要NS_REFINED_FOR_SWIFT了