私が使用スイフトクラスオブジェクトを初期化しようと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クラスです。 私はSwiftにObjective-Cを公開するためのヘッダーをブリッジしており、その逆もあります。
これを修正するにはどうすればよいですか?
'[[SwiftClass alloc] initWith:self.testclass];'にする必要がありますか? – PeejWeej
swiftクラスは、次のように定義します。 init(testclass:ObjCTestClass){ initWithがどこから来るのかわかりません。私は試して、それは動作しませんでした。ありがとう。 – ssk
私はそれが '[[SwiftClass alloc] initWithTestClass:self.testclass]'であると間違って話しました。これが正しく設定されている場合は、入力時に自動完成が必要です。 – PeejWeej