中文回答 swift文件中的didDoSomething接口需要在oc文件中调用报错No visible interface for MyDelegate declares the selector didDoSomething 如何解决
这个错误是因为在Objective-C文件中找不到声明为'didDoSomething:'的方法。要解决这个问题,你需要确保在Objective-C的头文件中声明了'didDoSomething:'方法,并在实现文件中实现该方法。
首先,在Objective-C的头文件中声明'didDoSomething:'方法,并指定它的委托协议。例如:
@protocol MyDelegate <NSObject>
- (void)didDoSomething;
@end
@interface MyClass : NSObject
@property (nonatomic, weak) id<MyDelegate> delegate;
- (void)performAction;
@end
然后,在Objective-C的实现文件中实现'didDoSomething:'方法:
@implementation MyClass
- (void)performAction {
// 做一些操作...
if ([self.delegate respondsToSelector:@selector(didDoSomething)]) {
[self.delegate didDoSomething];
}
}
@end
现在,在Swift文件中调用'didDoSomething:'方法时,就不会再报错了:
class MyDelegateImpl: NSObject, MyDelegate {
func didDoSomething() {
// 处理'didDoSomething'方法的实现
}
}
let myClass = MyClass()
let myDelegate = MyDelegateImpl()
myClass.delegate = myDelegate
myClass.performAction()
这样,你就能在Swift文件中成功调用'didDoSomething'方法了
原文地址: https://www.cveoy.top/t/topic/hKAw 著作权归作者所有。请勿转载和采集!