当前位置:   article > 正文

OC与Swift的相互调用_oc调用swift

oc调用swift

OC调用Swift方法

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

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

 3、在 LottieBridge.swift 中,定义Swift类继承于OC类,声明 @objcMembers@objc ,实现相关方法

  1. import UIKit
  2. import Lottie
  3. // 所有方法/属性声明
  4. @objcMembers class MyLottieView: UIView {
  5. private let animationView = LottieAnimationView()
  6. override init(frame: CGRect) {
  7. super.init(frame: frame)
  8. self.addSubview(animationView)
  9. }
  10. override func layoutSubviews() {
  11. super.layoutSubviews()
  12. animationView.frame = self.bounds
  13. }
  14. public func setLottieFromURL(_ url: URL?) {
  15. if let url = url {
  16. LottieAnimation.loadedFrom(url: url) { [weak self] (animation) in
  17. self?.animationView.animation = animation
  18. self?.play()
  19. }
  20. }
  21. }
  22. public func play() {
  23. animationView.play()
  24. }
  25. }
  26. // 单个方法/属性声明
  27. @objc class MyLottieView: UIView {
  28. private let animationView = LottieAnimationView()
  29. override init(frame: CGRect) {...}
  30. override func layoutSubviews() {...}
  31. @objc public func setLottieFromURL(_ url: URL?) {...}
  32. @objc public func play() {...}
  33. }

4、在OC代码中引用 ProductName-Swift.h ,调用Swift相关方法

  1. #import "ProductName-Swift.h"
  2. - (void)swiftTest {
  3. MyLottieView *lottieView = [[MyLottieView alloc] initWithFrame:CGRectMake(100, 100, 320, 320)];
  4. [self.view addSubview:lottieView];
  5. NSURL *url = [NSURL URLWithString:@"https://assets9.lottiefiles.com/packages/lf20_N0y2Nj.json"];
  6. [lottieView setLottieFromURL:url];
  7. }

Swift调用OC方法

1、在 ProductName-Bridging-Header.h 中加入OC的头声明

  1. #import <YYKit/YYKit.h>
  2. #import <AFNetworking/AFNetworking.h>

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

  1. private func OCTest() {
  2. let configuration = URLSessionConfiguration.default
  3. _ = AFURLSessionManager(sessionConfiguration: configuration)
  4. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/676664
推荐阅读
相关标签
  

闽ICP备14008679号