要在 Objective-C 中调用 Swift 并设置其委托,需要完成以下步骤:

  1. 创建一个 Swift 类,并将其继承自 NSObject。在该类中定义需要的功能,并创建一个委托协议。
import Foundation

@objc protocol MyDelegate {
    func didReceiveData(data: String)
}

@objc class MySwiftClass: NSObject {
    weak var delegate: MyDelegate?

    func sendData(data: String) {
        delegate?.didReceiveData(data: data)
    }
}
  1. 在 Swift 类中,使用 @objc 关键字来标记委托协议和类。这样可以使它们在 Objective-C 中可见。

  2. 在 Objective-C 的文件中,导入 Swift 生成的头文件,并遵循委托协议。

#import "YourProjectName-Swift.h"

@interface YourObjectiveCClass () <MyDelegate>
@property (nonatomic, strong) MySwiftClass *swiftObject;
@end

@implementation YourObjectiveCClass

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.swiftObject = [[MySwiftClass alloc] init];
    self.swiftObject.delegate = self;
}

- (void)didReceiveData:(NSString *)data {
    // 处理接收到的数据
}

@end
  1. 通过创建一个 Swift 对象并将其委托属性设置为 Objective-C 类的实例,来完成委托设置。这样,当 Swift 类中的相关事件发生时,Objective-C 类就可以接收到委托回调。

请注意,为了使 Objective-C 类能够被 Swift 访问,你需要在 Bridging Header 文件中导入 Objective-C 的头文件。

Objective-C 调用 Swift 并设置委托:完整指南

原文地址: https://www.cveoy.top/t/topic/qnWM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录