Objective-C Language
Формат спецификаторов
Поиск…
Вступление
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