私はいくつか簡単にstructs
をswift内の.swiftファイルに書いています。 これらstructs
は非常にシンプルで、ほぼ唯一の文字列が含まれています。クラスを作成せずにObjective-CでSwift構造体を使用する方法はありますか?
struct Letter {
struct A {
static let aSome : String = "descASome"
static let aSomeMore : String = "descASomeMore"
}
struct B {
static let bNow : String = "descBNow"
static let bLater : String = "descBLater"
}
...
}
私は、クロスプラットフォームのフレームワークを書いているので、Objective-Cのコードを含むプロジェクト内のこれらの構造体を使用します。
私は読んでいます:ObjectiveC - Swift interoperability by Appleスウィフト書かれた構造体がObjectiveCで使用できないことを明確に述べています。除外 は、(他の機能の中)である:スイフト
で定義構造
解決策1:
:I、クラスを使用して問題を解決SO溶液を見出しました
@objc class Letter : NSObject {
@objc class A : NSObject {
static let aSome : String = "descASome"
static let aSomeMore : String = "descASomeMore"
}
@objc class B : NSObject {
static let bNow : String = "descBNow"
static let bLater : String = "descBLater"
}
...
}
このソリューションは機能しますが、すべての構造体tクラス。構造体のような軽量ではありません(他のものの中でも)。 さらに、私は問題を解決するために後方に行くように感じる。
Q1。プロジェクト/状況に適していないソリューション1の横にObjectiveCの中にSwift構造体を使用する方法はありますか? (rawValueがIntの場合は列挙型を使用できます)
Q2。あなたは、いくつかの書き換えを行わず、これを行うことはできません
#if macOS // if Swift?
#endif
Q1はhttps://stackoverflow.com/questions/26173234/how-to-use-swift-struct-in-objective-cの複製です。 Swift構造体がObjective-Cにインポートされないことが*文書化されています。 –
私は質問を編集することができましたが、答えは "現在のところ"でした - 2014 ...ソリューションは私の場合(大アプリ)にはあまり良くありません。 – Darkwonder
* "Swift構造体をObjectiveCで使用できない"と知っていたら*なぜ "ObjectiveC内部でSwift構造体を使用する方法はありますか?" * –