1,在已有的Swift项目添加OC文件,或者在已有的OC项目添加Swift文件,会提示是否创建Objective-C Bridging Header。
2,点击“Create Bridging Header”,会创建bridge文件,系统默认的文件名是项目名+bridge+Header.h,并且系统默认会在 Build Settings->Objective-C Bridging Header 添加bridge文件路径引用。
如果没有选择系统默认提示“Create Bridging Header”, 只需要自己创建一个.h文件,在Build Settings ->Objective-C Bridging Header设置路径参数就行了。
3,如果需要在 Swift 中使用OC的代码或者库,只需要在XXX-bridge-Header.h文件中 import 相应的OC代码或者库的头文件即可。
#import "HttpRequestHandle.h"
在Swift文件中引用OC类
func LoadImageList() {
let dict :NSMutableDictionary = NSMutableDictionary()
dict.setObject(mUserID ?? "", forKey: "userid" as NSCopying)
dict.setObject(mArchiveID ?? "", forKey: "caseid" as NSCopying)
HttpRequestHandle.getImageList(dict, success: { (response: Any?) in
self.mPicList.removeAll()
let newarray = response as! Array
for subDic in newarray {
let newdic = subDic as! Dictionary
self.mPicList.append(newdic["thumbimg"] as! String)
}
NSLog("mPicList:%@", self.mPicList)
self.reloadData()
}, root: self)
}
4,找到targets->build settings->Objective-C Generated Interface Header Name,获得Swift对应的桥接头文件,默认的文件名是项目名-Swift.h。
XXX-Swift.h 文件不会出现在项目中,而是由Xcode自动生成,可以在build路径下找到相应项目的XXX-Swift.h文件。
在OC文件中添加XXX-Swift.h的引用
#import "TestDemo-Swift.h"
在OC中调用Swift
- (void)viewDidLoad {
[super viewDidLoad];
TestView *view = [[TestView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:view];
}