3 Stimmen

Verwendung von UIKit aus C/C++

Die Fragen wurden vielleicht bereits gestellt, aber ich möchte verstehen, ob die Frameworks des iPhone nur mit Objective-C verwendet werden können oder ob sie auch aus C/C++-Code aufgerufen werden können?

Zum Beispiel, ist es möglich, Standard-iPhone-Steuerungen aus C/C++-Code zu verwenden? Sind Standardklassen wie NSArray, NSSet aus C/C++-Code zugänglich?

Falls ja, könnte jemand einen Link zu einigen Beispielen geben, wie dies gemacht wird?

4voto

kennytm Punkte 488916

Sie können Objective C mit C++ mischen. Benennen Sie einfach Ihre Quelldatei um in .mm.

Einige Foundation-Klassen wie NSArray und NSSet sind sogenannte "toll-free bridges" zu CoreFoundation-Objekten wie CFArray und CFSet. Letzteres ist eine reine C-Bibliothek, die Sie ohne ObjC verwenden können.


UIKit ist ein reines Objective-C-Framework. Sie könnten UIKit mit C und C++ verwenden, da das Objective-C-Runtime von reinen C-Funktionen wie objc_msgSend zugänglich ist, z.B.

id UIView = objc_getClass("UIView");
SEL alloc = sel_registerName("alloc");
id view = objc_msgSend(UIView, alloc);
// ...

aber es ist nicht zuverlässig, z.B.

objc_msgSend(view, sel_registerName("setAlpha:"), 0.4);

wird nicht das tun, was Sie möchten.

Sie könnten den UI-Teil isolieren und dafür nur ObjC schreiben. Erstellen Sie eine C-Schnittstelle zwischen der Benutzeroberfläche und dem Backend, für die Sie C++ oder jede (erlaubte) Sprache verwenden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X