webentwicklung-frage-antwort-db.com.de

Objective-C-Formatierungszeichenfolge für Boolean?

Welches Formatierungsprogramm wird für boolesche Werte verwendet?

BEARBEITEN: 

Beispiel: NSLog(@" ??", BOOL_VAL);, was ist ???

110
Moshe

Eine Möglichkeit, dies zu tun, ist das Konvertieren in Strings (da es nur zwei Möglichkeiten gibt, ist es nicht schwer):

NSLog(@" %s", BOOL_VAL ? "true" : "false");

Ich glaube nicht, dass es einen Formatbezeichner für boolesche Werte gibt.

164
Michael Myers

Ich würde empfehlen

NSLog(@"%@", boolValue ? @"YES" : @"NO");

weil BOOLs in Objective-C YES oder NO heißen.

65
Yuji

Verwenden Sie den Ganzzahlformatierer %d, der entweder 0 oder 1:

NSLog(@"%d", myBool);
45
Erin Geyer

In Objective-C ist der Typ BOOL nur ein signiertes Zeichen. Von <objc/objc.h>:

typedef signed char BOOL;
#define YES         (BOOL)1
#define NO          (BOOL)0

Sie können sie also mit dem %d-Formatierer drucken. Dadurch wird jedoch nur ein 1 oder ein 0 gedruckt, nicht YES oder NO.

Oder Sie können einfach eine Zeichenfolge verwenden, wie in anderen Antworten vorgeschlagen.

23
mipadi

Fügen Sie diese Inline-Funktion Ihrer .h-Datei hinzu:

static inline NSString* NSStringFromBOOL(BOOL aBool) {
    return aBool? @"YES" : @"NO";
}

Jetzt bist du bereit zu gehen ...

NSLog(@"%@", NSStringFromBOOL(BOOL_VAL));
18
gigahari

Formatstrings zur Verwendung mit NSLog und [NSString stringWithFormat] sind hier dokumentiert:

http://developer.Apple.com/mac/library/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

BOOL/bool/boolean werden nicht einmal erwähnt ...

5
DLRdave

Fügen Sie einfach die unten stehende Funktion hinzu und übergeben Sie den BOOL -Wert. Die Methode gibt die NSString zurück. 

- (NSString *)boolValueToString:(BOOL)theBool {
    if (theBool == 0)
        return @"NO"; // can change to No, NOOOOO, etc
    else
        return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}
1
Bryan Norden

Ich glaube, der einfachste Weg, dies zu tun, ist:

NSLog(@" %@", @(BOOL_VAL));

@(Ausdruck)

Wertet den geschachtelten Ausdruck dynamisch aus und gibt das entsprechende Objektliteral basierend auf seinem Wert zurück (z. B. NSString für const char *, NSNumber für int usw.). 

1
asamoylenko

Ich habe damit eine Kategorie von NSString erstellt

+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}

Und benutze es so:

[NSString stringWithBool:boolValue];
0
xlsmearlx