我有它試圖使用給init一個夫特類對象的Objective-C類:爲「xxx」的無可見@interface聲明選擇「INIT:」
- (id) init : (ObjCTestClass*) testclass
{
NSLog(@"Creating");
self = [super init];
if (!self)
{
return nil;
}
self.testclass = testclass;
self.swiftClass = [[SwiftClass alloc] init: self.testclass];
return self;
}
這裏是對應夫特類:
final class SwiftClass: NSObject {
private var objcTestClass: ObjCTestClass
init(testclass:ObjCTestClass) {
provider = CXProvider(configuration: type(of: self).providerConfiguration)
objcTestClass = testclass
super.init()
}
}
我收到以下錯誤:
No visible @interface for 'xxx' declares the selector 'init:'
注: ObjCTestClass是一個Objective-C類。 我有橋接頭來暴露Objective-C到Swift,反之亦然。
如何解決這一問題?
是否需要'[[SwiftClass alloc] initWith:self.testclass];'? – PeejWeej
swift類定義: init(testclass:ObjCTestClass){ 我不確定initWith來自哪裏。我試過了,但沒有奏效。謝謝。 – ssk
我誤解了它應該是'[[SwiftClass alloc] initWithTestClass:self.testclass]'。如果設置正確,它應該在您輸入時自動完成。 – PeejWeej