Was ist das Objective-C-Äquivalent von Double.NaN
von Java? Ich habe eine Funktion, die einen Double zurückgibt, aber sie hat zwei Fälle, in denen sie zurückgeben kann Double.NaN
. Wie würde ich das in Objective-C implementieren?
Antworten
Zu viele Anzeigen?#include <math.h>
...
return NAN;
So einfach ist das. Wenn Sie aus irgendeinem Grund nicht in der Lage sind <math.h>
können Sie auch verwenden
return __builtin_nan("");
entweder mit GCC oder Clang.
Wie die meisten Low-Level-Spracheigenschaften von Objective-C ist dies übrigens direkt von C geerbt. Der relevante Teil der C-Spezifikation ist §7.12:
Das Makro
NAN
ist dann und nur dann definiert, wenn die Implementierung stille NaNs für den Typ float unterstützt. Er expandiert zu einem konstanten Ausdruck vom Typ float, der ein stilles NaN darstellt.
Beim Erlernen von Objective-C sollten Sie beachten, dass jede C-Programm ist ein Objective-C-Programm, und es ist nicht verkehrt, Funktionen der Sprache C zu verwenden, um Ihr Problem zu lösen.