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

 

posted on 2017-04-06 15:59  鬼手渔翁  阅读(535)  评论(0)    收藏  举报

导航