Recherche…


Introduction

Les spécificateurs de format sont utilisés dans Objective-c pour implanter des valeurs d'objet dans une chaîne.

Syntaxe

  • %@ //Chaîne
  • % d // Entier 32 bits signé
  • % D // Entier 32 bits signé
  • % u // Entier non signé de 32 bits
  • % U // Entier non signé de 32 bits
  • % x // Entier 32 bits non signé au format hexadécimal minuscule
  • % X // Entier 32 bits non signé au format hexadécimal UPPERCASE
  • % o // Entier non signé de 32 bits au format octal
  • % O // Entier non signé de 32 bits au format octal
  • % f // nombre à virgule flottante 64 bits
  • % F // nombre à virgule flottante 64 bits imprimé en notation décimale
  • % e // Nombre à virgule flottante de 64 bits au format de notation scientifique minuscule
  • % E // nombre à virgule flottante 64 bits au format de notation scientifique UPPERCASE
  • % g // cas particulier% e qui utilise% f lorsque moins de 4 figures sont disponibles, sinon% e
  • % G // cas particulier% E qui utilise% f lorsque moins de 4 figures sont disponibles, sinon% E
  • % c // caractère non signé de 8 bits
  • % C // Unité de code UTF-16 16 bits
  • % s // Chaîne UTF8
  • % S // variante de 16 bits de% s
  • % p // Pointeur vide en format hexadécimal minuscule avec '0x' en tête
  • % zx // cas spécial% p qui supprime le premier '0x' (à utiliser avec la distribution sans type)
  • % un nombre à virgule flottante // 64 bits en notation scientifique avec «0x» et un chiffre hexadécimal avant le point décimal à l'aide d'un «p» pour noter l'exposant.
  • % Un nombre à virgule flottante // 64 bits en notation scientifique avec «0x» et un chiffre hexadécimal avant le point décimal à l'aide d'un «P» pour noter l'exposant.

Remarques

En raison de la nature des spécificateurs de format, si vous souhaitez inclure le symbole de pourcentage (%) dans votre chaîne, vous devez y échapper en utilisant un deuxième symbole de pourcentage.

Exemple:

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

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

Aucun spécificateur de format pour le type BOOL n'existe.

Les solutions à usage commun comprennent:

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

NSLog(boolState);//logs "true"

Qui utilise un opérateur ternaire pour lancer une chaîne équivalente.

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

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

Qui utilise un moulage (int) pour implanter un équivalent binaire.

Exemple entier -% i

int highScore = 57;
NSString *scoreBoard = [NSString stringWithFormat:@"HighScore: %i", (int)highScore];

NSLog(scoreBoard);//logs "HighScore: 57"


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow