J'ai plusieurs structs
simples écrits dans des fichiers .swift rapides à l'intérieur. Ces structs
sont très simples et contiennent presque uniquement des chaînes:Existe-t-il un moyen d'utiliser les structures Swift en Objective-C sans en faire des Classes?
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"
}
...
}
Je veux utiliser ces struct dans un projet qui contient du code Objective-C parce que j'écris un cadre multi-plateforme.
J'ai lu: ObjectiveC - Swift interoperability by Apple qui stipule clairement que struct Swift écrit ne peuvent pas être utilisés par ObjectiveC. Sont exclus les (entre autres fonctions):
Structures définies dans Swift
Solution 1:
J'ai trouvé une solution SO qui résout le problème en utilisant des classes:
@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"
}
...
}
Cette solution fonctionne, mais je dois réécrire tous les structs t o cours. Ils ne sont pas non plus légers comme des structures (entre autres choses). En plus je me sens comme si je revenais en arrière pour résoudre le problème.
Q1. Existe-t-il un autre moyen d'utiliser les structures Swift à l'intérieur de ObjectiveC à côté de la solution 1, qui ne convient pas bien à mon projet/situation? (Énumérations peuvent être utilisées si elles sont rawValue Int)
Q2. Y at-il un moyen d'utiliser #define SomeConst pour l'accès et ObjectiveC stucts pour l'accès Swift comme:
#if macOS // if Swift?
#endif
Votre Q1 est un duplicata de https://stackoverflow.com/questions/26173234/how-to-use-swift-struct-in-objective-c. Il est documenté * que les structures Swift ne sont pas importées dans Objective-C. –
Je pourrais éditer la question mais la réponse était "dès maintenant" - 2014 ... la solution n'est pas très bonne pour mon cas (grosse application). – Darkwonder
Si vous savez * "que les structures écrites de Swift ne peuvent pas être utilisées par ObjectiveC" * alors demandez-vous * "Y at-il un moyen d'utiliser les structures Swift dans ObjectiveC?" * –