这个错误通常发生在Objective-C代码尝试调用Swift文件中的方法时。要解决这个问题,你需要确保已经正确地将Swift文件导入Objective-C代码中。

以下是一些可能的解决方案:

  1. 确保你的Swift文件被正确地导入到Objective-C的头文件中。在Objective-C的头文件中使用#import "YourProjectName-Swift.h"来导入Swift文件。确保该头文件中包含了你要调用的方法的声明。

  2. 检查你的Swift文件中的方法是否正确地声明在一个公开的类或协议中。Objective-C只能调用在公开类或协议中声明的方法。

  3. 确保你的Swift类或协议使用@objc修饰符进行了标记。这样可以将Swift的方法暴露给Objective-C。

以下是一个示例:

在Swift文件中:

@objc protocol MyDelegate {
    func didDoSomething()
}

class MySwiftClass: NSObject {
    weak var delegate: MyDelegate?

    func callDidDoSomething() {
        delegate?.didDoSomething()
    }
}

在Objective-C文件中:

#import "YourProjectName-Swift.h"

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

@implementation MyObjectiveCClass

- (instancetype)init {
    self = [super init];
    if (self) {
        self.swiftObject = [[MySwiftClass alloc] init];
        self.swiftObject.delegate = self;
    }
    return self;
}

- (void)didDoSomething {
    // 实现你的处理逻辑
}

@end

希望这些解决方案能帮助你解决问题。如果问题仍然存在,请提供更多的代码,以便我们更好地帮助你

中文回答 oc文件调用接口didDoSomethingdidDoSomething在swift文件中报错No visible interface for MyDelegate declares the selector didDoSomething 如何解决

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

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