2008-11-21 4 views

Antwort

3

Ziel C++ ist gut definiert und wird von Apples gcc unterstützt.

Aber Sie können C++ und objective C-Klassen nicht mischen, was das ziemlich chaotisch ziemlich schnell macht. Ich denke nicht, dass es viele Projekte in der Wildnis gibt, die C++ und Objective C in einem ernsthaften Ausmaß mischen.

Dies hängt stark von Ihrer Bibliothek ab, aber wenn (realistisch) machbar würde ich das C++ in eine C-Bibliothek einbinden, externe C-Eintrittspunkte für alle echten Funktionen verwenden und mit dem innerhalb Ihres objektiven C-Codes verknüpfen Deine iPhone App

4

Obwohl es stimmt, dass Sie C++ - Klassen in Objective-C nicht mischen können, können Sie es mit Objective-C++ kombinieren, was meiner Meinung nach auch im iPhone unterstützt wird. Die Integration von C++ - Code in eine iPhone-App sollte kein Problem darstellen. Wenn Sie jedoch auf der sicheren Seite bleiben möchten, sollten Sie Ihren Code als Bibliothek erstellen und dann von Ihrer iPhone-App aus darauf verlinken. Auf diese Weise müssen Sie sich nicht darum kümmern, Obj-C-Code und C++ - Klassen zu mischen.

Wie für Apples Genehmigung, kann niemand Ihnen eine definitive Antwort geben, was Ihre App für die Aufnahme in den Laden oder nicht qualifiziert, da Apple über den gesamten Prozess eher geschlossen ist. Es ist jedoch ziemlich klar, dass es bestimmte Arten von Anwendungen sind, die den Schnitt nicht machen werden; Nämlich:

  • Apps, die das iPhone SDK auf eine Weise "missbrauchen" oder verdrehen, wie Apple es nicht mag. IE, um die Helligkeit der Geräteeinstellung
  • zu viel Bandbreite oder Systemressourcen (Lebensdauer der Batterie Trockenlegung unnötig)
  • Duplizierung Apples Funktionalität irgendwo (dh, so dass ein Mail-Client, Web-Browser, etc.)
  • Ausnutzen der Preisstufen und -schemata
  • Eigentlich ist es besser, nur nach Beispielen für gesperrte Apps zu googlen, um ein besseres Gefühl dafür zu bekommen. Aber das Endergebnis ist, es ist nicht wie Ihre App tut etwas, es ist was Ihre App macht, was dazu führen wird, dass es verboten wird.

    +0

    "Apple Funktionalität irgendwo duplizieren", es ist lustig, weil vor vielen Jahren, gab es dieses Problem, dass Browser-Anbieter waren nicht allzu glücklich von IE ein Monopol auf Windows. Ich habe gehört, dass etwas Klage erhoben wurde. Aber hey, es ist nicht dasselbe mit Apfel, wie überhaupt – lurscher

    2

    Ich habe gerade mit der iPhone-Entwicklung begonnen, aber ich konnte einige vorhandene C++ - Bibliotheken ohne Änderungen erfolgreich verwenden. Ich habe einige OpenGL-Klassen mitgebracht, die ich bereits geschrieben habe, und sie funktionieren gut, da die Gl-Bibliotheken auf dem iPhone alle C und nicht Obj-C sind. Ich lade zum Beispiel eine Textur in ein GLubyte-Array mit Obj-C, um die Ressourcen, die Größe usw. zu erhalten, und übergebe diese Werte dann an meinen C++ - Code, der die gl-Aufrufe ausführt, um die Textur zu erstellen. Gleiches gilt für das Laden der Geometrie.

    Ändern Sie einfach Ihre .m-Dateien in .mm und alles scheint einfach zu funktionieren. Objektive C++ - Klassen können Mitglieder haben, die C++ - Klassen sind (obwohl ich nicht glaube, dass der andere Weg zutrifft, was ein Problem sein könnte).