OC与Swift的相互调用

OC调用Swift方法

1、在 Build Settings 搜索 Packaging ,设置 Defines Module 为 YES

OC与Swift的相互调用_第1张图片

 2、新建 LottieBridge.swift 文件,自动生成桥 ProductName-Bridging-Header.h

OC与Swift的相互调用_第2张图片

 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 
#import 

2、在Swift代码中调用OC的相关方法

private func OCTest() {
    let configuration = URLSessionConfiguration.default
    _ = AFURLSessionManager(sessionConfiguration: configuration)
}

你可能感兴趣的:(Objective-C,Swift,swift,oc,混编,iOS)