swift oc混编一些理解
swift引用oc:
1、需要在build settings中的Objective-C Bridging Header中设置头文件,如myswift/myswiftBridge.h,然后再myswiftBridge.h中引入oc的头文件,如#import "myOCClass.h"
2、当引用三方或pods下的三方库时,直接在swift文件中引用,如
import QorumLogs //swift的打印log
import MJRefresh //oc的表格处理

3、当swift使用pods时,如果在Podfile顶部使用 #use_frameworks!,那么pods引入的源码会被编译成静态库.a,
如果使用use_frameworks!,那么源码会被编译成动态链接库framework,当swift引用时,在swift文件中引用,如
import QorumLogs
import MJRefresh
QorumLogs是swift编写,那么引用动态库,按住commit点击跟踪具体方法时,会跟踪到源码,当跟踪import引用时,会跟踪到swift写的类的一个接口缩略,没有实现,分别对应下图
跟踪QL1方法:

跟踪导入的QorumLogs:

MJRefresh是oc编写,那么引用动态库,按住commit点击跟踪具体方法时,不会跟踪到源码,会跟踪到swift写的类的一个接口缩略,没有实现,当跟踪import引用时,会跟踪到swift写的类的一个接口缩略,没有实现,具体实现在oc源码里面,分别对应下图
跟踪footer的方法noticeNoMoreData:

跟踪MJRefresh文件:

4、oc引入swift:

#import "ViewController.h"
// 引入Swift头文件
#import "OCAndSwift-Swift.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 使用Swift的类
Test *test = [[Test alloc] init];
[test log];
}
@end
浙公网安备 33010602011771号