Objective-C LanguageFormat-Specifiers


introduzione

Gli specificatori di formato sono usati in Objective-c per impiantare valori-oggetto in una stringa.

Sintassi

  • % @ // String
  • % d // Numero intero a 32 bit con segno
  • % D // Numero intero a 32 bit con segno
  • % u // Numero intero a 32 bit senza segno
  • % U // Numero intero a 32 bit senza segno
  • % x // Numero intero a 32 bit senza segno in formato esadecimale minuscolo
  • % X // Numero intero a 32 bit senza segno nel formato esadecimale MAIUSCOLO
  • % o // Numero intero a 32 bit senza segno in formato ottale
  • % O // Numero intero a 32 bit senza segno in formato ottale
  • % f // Numero a virgola mobile a 64 bit
  • % F // Numero a virgola mobile a 64 bit stampato in notazione decimale
  • % e // Numero a virgola mobile a 64 bit in formato di notazione scientifica in minuscolo
  • % E // Numero a virgola mobile a 64 bit nel formato di notazione scientifica UPPERCASE
  • % g // caso speciale% e che utilizza% f quando sono disponibili meno di 4 sig-fichi, altrimenti% e
  • % G // caso speciale% E che utilizza% f quando sono disponibili meno di 4 sig-fichi, altrimenti% E
  • % c // carattere senza segno a 8 bit
  • % C // unità di codice UTF-16 a 16 bit
  • % s // Stringa UTF8
  • % S // variante a 16 bit di% s
  • % p // Puntatore del vuoto in formato esadecimale in minuscolo con "0x" iniziale
  • % zx // caso speciale% p che rimuove il principale '0x' (da utilizzare con il cast senza caratteri)
  • % a // Numero a virgola mobile a 64 bit in notazione scientifica con iniziale '0x' e una cifra esadecimale prima del punto decimale utilizzando una 'p' per annotare l'esponente.
  • % A // Numero a virgola mobile a 64 bit in notazione scientifica con iniziale '0x' e una cifra esadecimale prima del punto decimale usando una 'P' per annotare l'esponente.

Osservazioni

A causa della natura degli specificatori di formato, se si desidera includere il simbolo percentuale (%) nella stringa, è necessario sfuggire utilizzando un secondo simbolo percentuale.

Esempio:

int progress = 45;//percent
NSString *progressString = [NSString stringWithFormat:@"Progress: %i%%", (int)progress];

NSLog(progressString);//logs "Progress: 45%"

Non esiste alcun specificatore di formato per tipo BOOL.

Le soluzioni di uso comune includono:

BOOL myBool = YES;
NSString *boolState = [NSString stringWithFormat:@"BOOL state: %@", myBool?@"true":@"false"];

NSLog(boolState);//logs "true"

Che utilizza un operatore ternario per trasmettere un equivalente di stringa.

BOOL myBool = YES;
NSString *boolState = [NSString stringWithFormat:@"BOOL state: %i", myBool];

NSLog(boolState);//logs "1" (binary)

Che utilizza un cast (int) per l'impianto di un equivalente binario.

Format-Specifiers Esempi correlati