Tool zum Konvertieren von Swift nach Objective-C [geschlossen]

75

Ich weiß, dass die meisten Fragen die Konvertierung von Objective-C in Swift-C betreffen, aber ich suche nach einem Tool, mit dem ein Swift-Code in Objective-C konvertiert werden kann. Bei der Suche finde ich nur das Ziel, schnell zu sein.

Ja - ich weiß, dass ich mit einem Bridge-Header schnellen Code in das Objective-C-Projekt einfügen kann - das ist nicht das, wonach ich suche.

Ich brauche ein Tool, das schnellen Code in Objective-C-Code konvertiert. Gibt es so etwas?

Entwickler82
quelle
10
Ich kann es nur empfehlen. ObjC und Swift sind völlig unterschiedlich. Es ist, als würde man ein Fahrrad mit einem Hammer in ein Auto verwandeln.
Dasdom
5
Das Leben wäre viel einfacher gewesen, wenn mir jemand einen Konverter von Obj-c in x-Sprache geben könnte. Wäre nicht nötig, neue Sprachen zu lernen xd
NSNoob
6
@NSNoob es ist nicht so, dass ich nicht schnell lernen muss. Es ist so, dass ich obj-c-Code anstelle von schnell brauche - wie bereits erwähnt, weiß ich, dass ich einen in einem anderen verwenden kann. Aber anstatt mich jetzt stundenlang hinzusetzen und einander zu übersetzen, fragte ich mich, ob ich das Vergnügen irgendwie vermeiden könnte.
Entwickler82
5
Entwickler82, ich habe heute ein Perl-Skript geschrieben, das Swift in Obj C "übersetzt". Es funktioniert so unvollkommen und unvollständig, vermeidet aber einen Großteil der manuellen Arbeit. Leider erhalte ich sehr ungenaue Stacktraces von Swift-Abstürzen, während Obj C-Abstürze besser nachvollziehbar sind. Daher konvertiere ich nur ungern einen Teil meines Codes, um einige dauerhafte und schwer fassbare Fehler aufzuspüren. Da dieses Thema jedoch geschlossen ist, kann ich keine Postleitzahl posten.
Casey Perkins
4
Ich habe dafür gestimmt, dies wieder zu eröffnen, weil es derzeit das ist, wonach ich suche, und es scheint mir eine vollkommen gute Anfrage zu sein.
Jonny

Antworten:

37

Es gibt keine solchen Tools zum Konvertieren von Swift-Code in Objective-C. Es gibt einige Gründe. Zum einen ist Objective-C eine semantische Teilmenge von Swift, dh Objective-C hat keine Entsprechung zu einigen grundlegenden Merkmalen von Swift wie Generika , algebraische Datentypen , Mustervergleich und andere. Theoretisch ist es möglich, aber generierter Objective-C-Code sollte Boilerplate und ineffizient sein.

Es wird empfohlen, Ihre Codebasis nach Swift zu migrieren, um technische Schulden zu vermeiden. Es gibt viele Tools, mit denen Objective-C in Swift konvertiert werden kann .

imnosov
quelle
2
Ein Optimierer könnte implementiert werden, um es weniger ineffizient zu machen. Genau wie jeder andere Compiler.
Greg.Casamento
6
Dass es keine direkten Ersetzungen ("Äquivalente") gibt, bedeutet nicht, dass es intranslatable ist. Zum Beispiel sind Generika in Swift aufgrund ihrer statischen Natur notwendig. Das Äquivalent von Objective-C ist die dynamische Typisierung. Umgekehrt ist es sehr schwierig, dynamisches Tippen in Generika zu übersetzen.
Amin Negm-Awad