Chapter 2 : 数据类型
1. Obj-C提供的基本数据类型: int、float、double、 char
-> int :
十进制 | NSLog格式符为:%i, %d | |
八进制 | 整型第一位为0 |
NSLog的格式符为:%o 显示的八进制不带前导0 %#o 显示的八进制带前导0 |
十六进制 | 以0x开头的整型 |
NSLog的格式符为: %x 显示的十六进制不带前导0x %#x 显示的十六进制带前导0x PS : 若%X或%#X, 显示的十六进制用大写 |
-> float :
NSLog的格式符: %f
NSLog的格式符: %e 科学计数法显示值
NSLog的格式符: %g 指数的值小于-4大于5,采用%e, 否则采用%f
NSLog的格式符:
-> double : 若无特殊说明,Obj-C将所有的浮点常量看做double值,要显示double值可使用和float一样的格式符。
long double常量写成尾部带有字母l或者L的浮点常量。例:1.234e+7L
-> char :
NSLog的格式符: %c
扩展类型:
PS : id类型可通过类型转化符将一般的id类型的对象转换成特定的对象。
2. 关于实例变量的补充:
-> 实例变量作用域的指令:
@protected 实例变量可被该类及任何子类中定义的方法直接访问(默认情况下)。
@private 实例变量可被定义在该类的方法直接访问,不能被子类定义的方法直接访问。
@public 实例变量可被该类中定义的方法直接说,也可被其它类或模块中定义的方法访问。使得其他方法或函数可以通过(->)来访问实例变量(不推荐用)
@package 对于 64 位图像,可以在实现该类的图像的任何地方访问这个实例变量。(注:这个没懂)
3. 静态变量:
volatile说明符和const正好相反,明确告诉compiler, 指定类型变量的值会改变。
示例:
volatile char *outPort; *outPort = 'O'; *outPort = 'N';
这样可以避免compiler将第一个赋值语句程序中删除。
4. enum, typedef语法以及数据类型的转换和C也是一样的。