2012-04-10 6 views
4

Ist es möglich, die SQLite-API unter iOS mit C++ anstelle von Objective-C aufzurufen? Ich arbeite an einem Musik-Sequenzer und ich denke, meine beste Option ist das Speichern der Notizen in einer SQLite-Datenbank mit einer indizierten Measurespalte.Acces SQLite-Datenbank mit C++ auf iOS?

Ich brauche diese Noten meinen Ton-Rahmen zu berechnen und C++ ist für die Echtzeit-Audio-Verarbeitung empfohlen. (Ich berechne die Sinuswelle für jede Note.) Ich vermute, dass die Verwendung von C++ für die SQLite-Datenbank auch die Dinge beschleunigen würde und auf diese Weise würde ich nicht ständig von Obj-C nach C++ wechseln müssen.

Jede Idee, wenn dies möglich ist, und alle Beispiele?

+0

einfach Ihre .m-Dateien umbenennen, um zu .MM und Sie können C++ in Ihrem Projekt wie gewohnt verwenden! (ObjC++ ftw) –

+1

Die SQLite API ist in C geschrieben. Sie müssen sie nur aufrufen. Nichts Besonderes bei der Verwendung von Objective-C. –

Antwort

0

Jedes Mal, wenn Sie eine Datenbank verwenden, ist es viel sein wird, viel langsamer als die wenige Zyklen es kosten könnte eine Obj-C-Funktion von C++ zu nennen.

Dies ist eine vorzeitige Optimierung. Zugriff auf die Datenbank nur den einfachen Weg und wenn und wenn es jemals ein Problem wird, werden Sie in einer viel besseren Position sein, um es zu beheben, denn dann wissen Sie, wo der Engpass ist.

+0

Ich glaube nicht, dass Sie die Frage richtig gelesen haben - er ist bereits in C++ und möchte vermeiden, dass Sie von C++ zu Objective-C wechseln müssen, nur um die Datenbank zu benutzen. –

+0

@AndyDent: Nein, ich habe die Frage gelesen. Mein Punkt ist, dass leistungsbezogen (worüber das OP anscheinend besorgt ist), es macht keinen Unterschied, ob Sie bei jedem Zugriff auf die Datenbank in Obj-C-Code aufrufen müssen, da der Datenbankzugriff bereits Größenordnungen ist langsamer als das. Es ist also sicher, dass es bequem ist, auf die Datenbank von C++ aus zuzugreifen, aber in Bezug auf die Leistung ist es nicht notwendig. – jalf

6

Ja, es ist möglich. Sie müssen nur die SQLite-Bibliothek zu Ihrem Projekt hinzufügen und der SQLite C/C++ API folgen.