#Objective-C和Swift混编
分两种情况,一种Swift调用OC,一种OC调用Swift。
###一、Swift调用OC:
在Swift中创建OC文件,包括.h和.m文件,这时Xcode会提示创建Objective-C bridging header文件,反之也一样。点击Yes,生成文件,文件名称格式为
product module name-Bridging-Header。例如:EZLivePhotos-Bridging-Header。
当然也可以手动创建一个头文件,然后在targets->build settings ->Object-C Bridging Header把它设置为桥接头文件。
将你想使用的OC类引用到这个头文件,这样你就可以在Swift里调用这个OC类了。
###二、OC调用Swift:
同样也需要一个桥接文件,和上边一样,创建或者导入Swift文件时自动生成就好。
然后在你需要使用Swift类的OC文件中,导入这样一个头文件,名称格式为
product module name-swift.h,这个-swift是固定格式。例如#import "EZLivePhotos-swift.h”。
product module name你可以在argets->build settings ->packaging->Product Module Name找到。
导入后,你可以通过点击command加左键点击进去查看。在其中你可以看到你的Swift类被编译成OC的写法。如果没有你可以clean一下,然后Command+B重新编译一下就可以。
这个时候,在OC类中就可以随便调用Swift类了。不过有时候引用的Swift类会找不到alloc方法,不能初始化。为了解决这个问题,你要尽量让你的Swift类是集成与NSObject类的。