Поиск…


Вступление

Format-Specifiers используются в Objective-c для имплантации значений объекта в строку.

Синтаксис

  • % @ // String
  • % d // Подписанное 32-битное целое число
  • % D // Подписанное 32-битное целое число
  • % u // Беззнаковое 32-битное целое число
  • % U // Неподписанное 32-битное целое число
  • % x // Неподписанное 32-разрядное целое число в нижнем регистре в шестнадцатеричном формате
  • % X // Беззнаковое 32-битное целое число в шестнадцатеричном формате UPPERCASE
  • % o // Unsigned 32-разрядное целое число в восьмеричном формате
  • % O // Unsigned 32-разрядное целое число в восьмеричном формате
  • % f // 64-разрядное число с плавающей запятой
  • % F // 64-битное число с плавающей запятой, напечатанное в десятичной системе обозначений
  • % e // 64-разрядное число с плавающей запятой в нижнем формате научной нотации
  • % E // 64-разрядное число с плавающей запятой в формате научной нотации UPPERCASE
  • % g // специальный случай% e, который использует% f, когда доступно менее 4 sig-figs, иначе% e
  • % G // специальный случай% E, который использует% f, когда доступно менее 4 sig-figs, иначе% E
  • % c // 8-битный знак без знака
  • % C // 16-разрядный кодовый блок UTF-16
  • % s // UTF8 String
  • % S // 16-битный вариант% s
  • % p // Указатель Void в нижнем регистровом формате с начальным «0x»
  • % zx // специальный случай% p, который удаляет ведущий '0x' (для использования с отличным типом)
  • % a // 64-разрядное число с плавающей запятой в научной нотации с ведущей «0x» и одной шестнадцатеричной цифрой перед десятичной точкой с использованием «p» для обозначения экспоненты.
  • % A // 64-разрядное число с плавающей запятой в научной нотации с ведущими «0x» и шестнадцатеричной цифрой перед десятичной точкой с использованием «P» для обозначения экспоненты.

замечания

Из-за характера спецификаторов формата, если вы хотите включить процентный символ (%) в свою строку, вы должны избежать этого, используя второй процентный символ.

Пример:

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

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

Нет спецификатора формата для типа BOOL.

Решения общего пользования включают:

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

NSLog(boolState);//logs "true"

Который использует тернарный оператор для литья эквивалентной строки.

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

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

Которая использует (int) приведение для имплантации двоично-эквивалентного.

Целочисленный пример -% 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow