Using Swift with Cocoa and Objective-C (Swift 2.1) ドキュメントの相互運用性に関するセクションの次の段落は、相互運用性のために Objective-C クラスから継承しない Swift クラスを使用する方法があることを示唆しているようです。
Objective-C クラスから派生する Swift クラスを作成すると、クラスとそのメンバー (Objective-C と互換性のあるプロパティ、メソッド、添え字、および初期化子) は、Objective-C から自動的に利用可能になります。場合によっては、Swift API を Objective-C に公開する方法をより細かく制御する必要があります。Swift クラスが Objective-C クラスから継承しない場合、または Objective-C コードに公開されているインターフェイスでシンボルの名前を変更する場合は、 @objc 属性を使用できます。
そして、私は次のことを試みました:
import Foundation
@objc class FooBar {
@objc var name: String;
init() {
name = "Hello World!"
}
}
しかし、残念ながら、コンパイル エラーが発生します。NSObject から継承したクラスのみを @objc として宣言できます。
私は何かを誤解していますか?