Objective-C中的占位符,打印BOOL类型数据
常用的一些占位符: %@:字符串占位符 %d:整型 %ld:长整型 %f:浮点型 %c:char类型 %%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的地方,看了一下别人是怎么解决这个问题的
[cpp] view plain copy
print? BOOL studyBool = YES;
NSLog(@"打印BOOL型数据%@",studyBool?@"YES":@"NO");//打印BOOL型数据YES
NSLog(@"打印BOOL型数据%d",studyBool);//打印BOOL型数据1 BOOL alsoBool = NO;
NSLog(@"打印BOOL型数据%@",alsoBool?@"YES":@"NO");//打印BOOL型数据NO
NSLog(@"打印BOOL型数据%d",alsoBool);//打印BOOL型数据0 详细介绍:********************************************************** %@: Objective-C对象,印有字符串返回descriptionWithLocale:如果于的话,或描述相反.CFTypeRef工作对象,返回的结果的CFCopyDescription功能.(这个翻译有问题建议按照自己的理解方式理解)。 %%: 为'%'字符; %d,%D,%i: 为32位整型数(int); %u,%U: 为32位无符号整型数(unsigned int); %hi: 为有符号的16位整型数(short); %hu: 为无符号的16位整型数(unsigned shord); %qi: 为有符号的64位整型数(long long); %qu: 为无符号的64位整型数(unsigned long long); %x: 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,小写a-f; %X: 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,大写A-F; %qx: 为无符号64位整数(unsigned long long),打印使用数字0-9的十六进制,小写a-f; %qX: 为无符号64位整数(unsigned long long),打印使用数字0-9的十六进制,大写A-F; %o,%O: 为32位的无符号整数(unsigned int),打印八进制数; %f: 为64位的浮点数(double); %e: 为64位的浮点数(double),打印使用小写字母e,科学计数法介绍了指数的增大而减小; %E: 为64位的浮点数(double),打印科学符号使用一个大写E介绍指数的增大而减小; %g: 为64位的浮点数(double),用%e的方式打印指数,如果指数小于4或者大于等于精度,那么%f的风格就会有不同体现; %G: 为64位的浮点数(double),用%E的方式打印指数,如果指数小于4或者大于等于精度,那么%f的风格就会有不同体现; %c: 为8位的无符号字符%c(unsigned char),通过打印NSLog()将其作为一个ASCII字符,或者,不是一个ASCII字符,八进制格式\ddd或统一标准的字符编码的十六进制格式\udddd,在这里d是一个数字; %C: 为16位Unicode字符%C(unichar),通过打印NSLog()将其作为一个ASCII字符,或者,不是一个ASCII字符,八进制格式\ddd或统一标准的字符编码的十六进制格式\\udddd,在这里d是一个数字; %s: 对于无符号字符数组空终止,%s系统中解释其输入编码,而不是别的,如utf-; %S: 空终止一系列的16位Unicode字符; %p: 空指针(无效*),打印十六进制的数字0-9和小写a-f,前缀为0x; %L: 在明确规定的长度下,进行修正,下面的一批数据a,A,e,E,f,F,g,G应用于双精度长整型的参数; %a: 为64位的浮点数(double),按照科学计数法打印采用0x和一个十六进制数字前使用小写小数点p来介绍指数的增大而减小; %A: 为64位的浮点数(double),按照科学计数法打印采用0X和一个十六进制数字前使用大写字母小数点P界扫指数的增大而减小; %F: 为64位的浮点数(double),按照十进制表示法进行打印; %z: 修改说明在%z长度以下d,i,o,u,x,X适用于某一指定类型的转换或者适用于一定尺寸的整数类型的参数; %t: 修改说明在%t长度以下d,i,o,u,x,X适用于某一指定类型或一定尺寸的整数类型的转换的参数; %j: 修改说明在%j长度以下d,i,o,u,x,X适用于某一指定类型或一定尺寸的整数类型的转换的参数。 英文文档 格式定义
The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table . Note that you can also use the “n$” positional specifiers such as %$@ %$s. For more details, see the IEEE printf specification. You can also use these format specifiers with the NSLog function.
Table Format specifiers supported by the NSString formatting methods and CFString formatting functions 定义 说明
%@ Objective-C object, printed as the string returned by descriptionWithLocale: if available, or description otherwise. Also works with CFTypeRef objects, returning the result of the CFCopyDescription function.
%% ‘%’ character
%d, %D, %i Signed -bit integer (int)
%u, %U Unsigned -bit integer (unsigned int)
%hi Signed -bit integer (short)
%hu Unsigned -bit integer (unsigned short)
%qi Signed -bit integer (long long)
%qu Unsigned -bit integer (unsigned long long)
%x Unsigned -bit integer (unsigned int), printed in hexadecimal using the digits – and lowercase a–f
%X Unsigned -bit integer (unsigned int), printed in hexadecimal using the digits – and uppercase A–F
%qx Unsigned -bit integer (unsigned long long), printed in hexadecimal using the digits – and lowercase a–f
%qX Unsigned -bit integer (unsigned long long), printed in hexadecimal using the digits – and uppercase A–F
%o, %O Unsigned -bit integer (unsigned int), printed in octal
%f -bit floating-point number (double)
%e -bit floating-point number (double), printed in scientific notation using a lowercase e to introduce the exponent
%E -bit floating-point number (double), printed in scientific notation using an uppercase E to introduce the exponent
%g -bit floating-point number (double), printed in the style of %e if the exponent is less than – or greater than or equal to the precision, in the style of %f otherwise
%G -bit floating-point number (double), printed in the style of %E if the exponent is less than – or greater than or equal to the precision, in the style of %f otherwise
%c -bit unsigned character (unsigned char), printed by NSLog() as an ASCII character, or, if not an ASCII character, in the octal format \\ddd or the Unicode hexadecimal format \\udddd, where d is a digit
%C -bit Unicode character (unichar), printed by NSLog() as an ASCII character, or, if not an ASCII character, in the octal format \\ddd or the Unicode hexadecimal format \\udddd, where d is a digit
%s Null-terminated array of -bit unsigned characters. %s interprets its input in the system encoding rather than, for example, UTF-.
%S Null-terminated array of -bit Unicode characters
%p Void pointer (void *), printed in hexadecimal with the digits – and lowercase a–f, with a leading 0x
%L Length modifier specifying that a following a, A, e, E, f, F, g, or G conversion specifier applies to a long double argument
%a -bit floating-point number (double), printed in scientific notation with a leading 0x and one hexadecimal digit before the decimal point using a lowercase p to introduce the exponent
%A -bit floating-point number (double), printed in scientific notation with a leading 0X and one hexadecimal digit before the decimal point using a uppercase P to introduce the exponent
%F -bit floating-point number (double), printed in decimal notation
%z Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a size_t or the corresponding signed integer type argument
%t Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a ptrdiff_t or the corresponding unsigned integer type argument
%j Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a intmax_t or uintmax_t argument 平台依赖
Mac OS X uses several data types—NSInteger, NSUInteger,CGFloat, and CFIndex—to provide a consistent means of representing values in - and -bit environments. In a -bit environment, NSInteger and NSUInteger are defined as int and unsigned int, respectively. In -bit environments, NSInteger and NSUInteger are defined as long and unsigned long, respectively. To avoid the need to use different printf-style type specifiers depending on the platform, you can use the specifiers shown in Table . Note that in some cases you may have to cast the value.
Table Format specifiers for data types 类型 定义 建议
NSInteger %ld or %lx Cast the value to long
NSUInteger %lu or %lx Cast the value to unsigned long
CGFloat %f or %g %f works for floats and doubles when formatting; but see below warning when scanning
CFIndex %ld or %lx The same as NSInteger
pointer %p %p adds 0x to the beginning of the output. If you don’t want that, use %lx and cast to long.
long long %lld or %llx long long is -bit on both - and -bit platforms
unsigned long long %llu or %llx unsigned long long is -bit on both - and -bit platforms The following example illustrates the use of %ld to format an NSInteger and the use of a cast. NSInteger i = ;
printf("%ld\n", (long)i); In addition to the considerations mentioned in Table , there is one extra case with scanning: you must distinguish the types for float and double. You should use %f for float, %lf for double. If you need to use scanf (or a variant thereof) with CGFloat, switch to double instead, and copy the double to CGFloat. CGFloat imageWidth;
double tmp;
sscanf (str, "%lf", &tmp);
imageWidth = tmp; It is important to remember that %lf does not represent CGFloat correctly on either - or -bit platforms. This is unlike %ld, which works for long in all cases.
Objective-C中的占位符,打印BOOL类型数据的更多相关文章
- Java C# C语言中的占位符
一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...
- 安卓编程资源文件string中对占位符的使用详解
这里将为你详细介绍占位符的使用,将其学以致用,可以达到简化布局文件,减少字符串资源量. 1.在资源文件中的使用. 打开资源文件中的strings.xml文件,进行编辑.如下图所示: 图 1.0 2. ...
- 【占位符替换】替换String中的占位符标志位{placeholder}
概述 占位符替换, 占位符表示为:{placeholder}; 示例:替换如下{xxx}占位符中的内容 "名字:{name},年龄:{age},学校:{school}" 提供了两种 ...
- Java替换字符串中的占位符
在开发中,会有动态配置字符串其中的某些字符,如何使用字符中的占位符,并且在代码动态替换占位符实现动态配置字符串! 1.定义字符串时,再string文件添加字符串: 注意!记得要在字符文件中加上这些: ...
- 使用MessageFormat替换字符中的占位符
使用String.format可以实现字符串的格式化功能,即将后面参数中的值替换掉format中的%s,%d这些值.但MessageFormat更为强大,不用管传入值是字符串还是数字,使用占位符即可. ...
- hibernate查询语句hql中的占位符?参数与命名参数:name设值方式搞混
先贴出异常 Struts has detected an unhandled exception: Messages: Position beyond number of declared ordin ...
- C# 中的占位符本质
占位符本质 1.占位符是相对于String字符串类型而言的. 2.占位符其实就是调用String.Format()方法.把指定的变量拼接到定义好的字符串模板中组成新的字符串.
- spring 的 PropertyPlaceholderConfigurer读取的属性怎么访问 (java访问方式,不是xml中的占位符哦)及此类的应用
一.1.占位符的应用:(@Autowired注解方式,不需要建立set与get方法了,xml注入也不需要写了) http://www.cnblogs.com/susuyu/archive/2012/0 ...
- C#中的占位符
当我们需要在屏幕上输出一句话的时候,如果不断的使用+来连接各个字符串,一是容易出错,二是代码显示的非常乱.这时候,占位符就能够发挥作用! 占位符: string name="张三" ...
随机推荐
- [topcoder]IncrementAndDoubling
http://community.topcoder.com/stat?c=problem_statement&pm=12790&rd=15708 这道题只有两个操作,一是加一,二是数组 ...
- 接口 --- Java
package com.test2; public class Test { public static void main(String[] args) { // TODO Auto-generat ...
- 转载爱哥自定义View系列--Canvas详解
上面所罗列出来的各种drawXXX方法就是Canvas中定义好的能画什么的方法(drawPaint除外),除了各种基本型比如矩形圆形椭圆直曲线外Canvas也能直接让我们绘制各种图片以及颜色等等,但是 ...
- uml类图的几种关系
UML类图几种关系的总结 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregati ...
- PowerStack
int curInc; HashMap<Integer, Integer> incMap; Stack<Integer> stack; public SuperStack() ...
- bzoj3796
好像已经很久没有做后缀数组的题目,导致这种题一开始没想出来看到公共子串肯定想到后缀数组吧,但我都忘了最长公共子串怎么求了重要的性质:最长公共子串=max(h[i])名次相邻的两个后缀要分别属于s1,s ...
- bzoj3171
不难发现,每个点出度显然为1,要想整个图形成环,必然每个点的入度也为1: 所以,不难想到将每个点i拆成两个点i1,i2构成二分图, 连边s--->i1 流量为1,费用为0,i2--->t流 ...
- nginx 安全漏洞 (CVE-2013-4547)
Nginx 的安全限制可能会被某些请求给忽略,(CVE-2013-4547). 当我们通过例如下列方式进行 URL 访问限制的时候,如果攻击者使用一些没经过转义的空格字符(无效的 HTTP 协议,但从 ...
- Linux中ifreq 结构体分析和使用 及其在项目中的简单应用
[基础知识说明] 结构原型: /* * Interface request structure used for socket * ioctl's. All interface ioctl's mu ...
- 文件写操作--WriteLog
private static void Write(string sMsg, string fileName) { if (sMsg != "") { try { var dir ...