Frage

  

Mögliche Duplizieren:
   Aufruf Python von Objective-C

Ich bin ein seit langer Zeit eine Python-Programmierer und Kurzzeit-Cocoa-Programmierer. Ich bin nur mit PyObjC der ersten Schritte und es ist wirklich erstaunlich, wie einfach es ist Sachen zu erledigen. Das heißt, ich wollte mit reinem ObjC für mein Controller mit PyObjC Modelle versuchen. Ich kann genießen lassen Python seinen Python und Objective-C Objective-C sein. Ich dachte, es war ein Versuch wert, sowieso.

Mit Ausnahme Ich kann nicht herausfinden, oder etwas über finden, wie Python nennen von Objective-C, nur umgekehrt. Kann mir jemand auf diese auf alle Ressourcen zeigen? (Vielleicht ist es an der PyObjC Website, aber ich weiß einfach nicht, was ich suche?)

Edit:. Ich bin am meisten interessiert, auf der Grundstufe, in der Lage ist, ein Python-Modul zu nennen und einige native Daten ObjC Typen zurück

War es hilfreich?

Lösung 2

Whoops, ich denke, ich sollte etwas mehr gesucht:

Aufruf Python von Objective-C

Andere Tipps

Es gibt mehrere mögliche Ansätze. Die meisten verlockend ist py2app zu verwenden, um ein belastbare Bündel von Ihrem Python-Code zu kompilieren, aus dem Sie die Hauptklasse mit NSBundle zugreifen können. Leider hat sich dieser Anwendungsfall nicht viel Liebe von den py2app Entwickler bekommen, und ich habe einige Fehler in 10.5 und 10.6, darunter eine ziemlich unangenehme Speicherleck gefunden, wenn Python-Daten von vorbei zurück in Objective-C. Ich würde mit py2app bei thist Punkt nicht empfehlen.

Der zweite Ansatz ist die Einbettung invertieren. Schreiben Sie eine Python Kakao App und laden Sie Ihren Objective-C-Code aus einem Bündel beim Start (auch in main ()). Wenn Sie bereits einen großen Objective-C app haben, kann dies ein wenig Arbeit. Der einzige Nachteil, dass ich bin ware von, ist, dass Sie nicht in der Lage sein werden, GC in Ihrem Objective-C-Code zu verwenden, aber das ist wirklich eine universelle Einschränkung in der Arbeit mit PyObjC.

Schließlich können Sie ein Python-Interpreter in Ihrem Objective-C-Code instanziiert Ihren Python-Code zu laden. Das ist natürlich mehr beteiligt, aber die beste Option, wenn Sie bereits eine große Objective-C Code-Basis, in denen Sie Ihren Python-Code injizieren wollen. Die main.m Datei aus der Python-Cococa Anwendungsvorlage in Xcode ist ein guter Ort, um dieses in Aktion zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top