OC调用Swift方法
1、在 Build Settings 搜索 Packaging ,设置 Defines Module 为 YES
2、新建 LottieBridge.swift 文件,自动生成桥 ProductName-Bridging-Header.h
3、在 LottieBridge.swift 中,定义Swift类继承于OC类,声明 @objcMembers 或 @objc ,实现相关方法
import UIKit
import Lottie
// 单个方法/属性声明
@objc class MyLottieView: UIView {
let animationView = LottieAnimationView()
@objc public func play() {...}
}
// 所有方法/属性声明
@objcMembers class MyLottieView: UIView {
@nonobjc let animationView = LottieAnimationView()
public func play() {...}
}
4、在OC代码中引用 ProductName-Swift.h ,调用Swift相关方法
#import "ProductName-Swift.h"
- (void)swiftTest {
MyLottieView *lottieView = [[MyLottieView alloc] init];
[lottieView play];
}
Swift调用OC方法
1、在 ProductName-Bridging-Header.h 中加入OC的头声明
#import <YYKit/YYKit.h>
#import <AFNetworking/AFNetworking.h>
2、在Swift代码中调用OC的相关方法
private func OCTest() {
let configuration = URLSessionConfiguration.default
_ = AFURLSessionManager(sessionConfiguration: configuration)
}