2010-11-30 9 views

Antwort

11

Nein, ist es nicht. Dies geschieht tatsächlich ziemlich häufig.

Im Allgemeinen tut man dies, wenn man zeitkritischen Code benötigt, um schneller zu laufen (alles andere gleich, ist das Aufrufen einer C-Funktion schneller als eine Objective-C-Methode).

In einigen anderen Fällen kann es jedoch auch schöner sein, C-Funktionen zu schreiben.

Denken Sie daran, dass Objective-C eine Obermenge von C ist. Alles, was C tun kann, kann Objective-C tun, und es sollte nicht als schlecht erachtet werden, etwas zu tun, was C tun kann. Es kann Fälle geben, in denen einige Dinge nicht erwünscht sind, aber trotzdem.

0

Vorzeitige Optimierung ist die Wurzel allen Übels

Ob es gute Praxis ist oder nicht, hängt ganz von der Anwendung. In den meisten Fällen würde ich sagen, schreibe es zuerst in Objective-C und benutze dann einen Profiler für die Optimierung, wenn es zu langsam ist.

Es gibt jedoch Fälle, in denen Sie wissen, dass Sie eine Optimierung vornehmen müssen, z. B. wenn Sie einen Sprachinterpreter oder eine CPU-Emulation schreiben. In diesen Fällen (und in Fällen, in denen Profiling einen Engpass aufweist) ist es vollkommen in Ordnung, reines C zu schreiben.

0

Nein, es ist nicht, Viele von Apples eigenen Frameworks sind meist C wie Core Graphics oder Accelerate. C ist sehr gut für Funktionen, die Sie viel verwenden und schnell ausführen müssen, wie mathematische Funktionen.

0

Es gibt Fälle, in denen ein OO-Modell, insbesondere mit Einzelversand, einfach keinen Sinn ergibt. Für eine allgemeine Funktion kann es keinen klaren bevorzugten "Empfänger" geben. Eine Sprache, die generische Multi-Dispatch-Funktionen unterstützt, wäre meine Präferenz, da eine solche Sprache sowohl das unterstützt, was die meisten Menschen für OO halten, als auch so viel mehr, als nur einfach alte C-Stil-Funktionen zu unterstützen.

Verwandte Themen